<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><link rel="stylesheet" type="text/css" href="style.css" /><script type="text/javascript" src="highlight.js"></script></head><body><pre><span class="hs-cpp">#if __GLASGOW_HASKELL__ &lt; 802
</span><span class="hs-pragma">{-# OPTIONS_GHC -Wno-redundant-constraints #-}</span><span class="hs-cpp">
#endif
</span><span class="hs-keyword">module</span><span> </span><span class="hs-identifier">System.Console.Haskeline.Vi</span><span> </span><span class="hs-keyword">where</span><span>
</span><span id="line-5"></span><span>
</span><span id="line-6"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="System.Console.Haskeline.Command.html"><span class="hs-identifier">System.Console.Haskeline.Command</span></a></span><span>
</span><span id="line-7"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="System.Console.Haskeline.Monads.html"><span class="hs-identifier">System.Console.Haskeline.Monads</span></a></span><span>
</span><span id="line-8"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="System.Console.Haskeline.Key.html"><span class="hs-identifier">System.Console.Haskeline.Key</span></a></span><span>
</span><span id="line-9"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="System.Console.Haskeline.Command.Completion.html"><span class="hs-identifier">System.Console.Haskeline.Command.Completion</span></a></span><span>
</span><span id="line-10"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="System.Console.Haskeline.Command.History.html"><span class="hs-identifier">System.Console.Haskeline.Command.History</span></a></span><span>
</span><span id="line-11"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="System.Console.Haskeline.Command.KillRing.html"><span class="hs-identifier">System.Console.Haskeline.Command.KillRing</span></a></span><span>
</span><span id="line-12"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="System.Console.Haskeline.Command.Undo.html"><span class="hs-identifier">System.Console.Haskeline.Command.Undo</span></a></span><span>
</span><span id="line-13"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="System.Console.Haskeline.LineState.html"><span class="hs-identifier">System.Console.Haskeline.LineState</span></a></span><span>
</span><span id="line-14"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="System.Console.Haskeline.InputT.html"><span class="hs-identifier">System.Console.Haskeline.InputT</span></a></span><span>
</span><span id="line-15"></span><span>
</span><span id="line-16"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="../../base/src/Data.Char.html#"><span class="hs-identifier">Data.Char</span></a></span><span>
</span><span id="line-17"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="../../base/src/Control.Monad.html#"><span class="hs-identifier">Control.Monad</span></a></span><span class="hs-special">(</span><span class="annot"><a href="../../base/src/GHC.Base.html#liftM"><span class="hs-identifier">liftM</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-18"></span><span class="hs-keyword">import</span><span> </span><span class="annot"><a href="../../exceptions/src/Control.Monad.Catch.html#"><span class="hs-identifier">Control.Monad.Catch</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="../../exceptions/src/Control.Monad.Catch.html#MonadMask"><span class="hs-identifier">MonadMask</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-19"></span><span>
</span><span id="line-20"></span><span class="hs-keyword">type</span><span> </span><span id="EitherMode"><span class="annot"><a href="System.Console.Haskeline.Vi.html#EitherMode"><span class="hs-identifier hs-var">EitherMode</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><a href="../../base/src/Data.Either.html#Either"><span class="hs-identifier hs-type">Either</span></a></span><span> </span><span class="annot"><a href="System.Console.Haskeline.LineState.html#CommandMode"><span class="hs-identifier hs-type">CommandMode</span></a></span><span> </span><span class="annot"><a href="System.Console.Haskeline.LineState.html#InsertMode"><span class="hs-identifier hs-type">InsertMode</span></a></span><span>
</span><span id="line-21"></span><span>
</span><span id="line-22"></span><span class="hs-keyword">type</span><span> </span><span id="SavedCommand"><span class="annot"><a href="System.Console.Haskeline.Vi.html#SavedCommand"><span class="hs-identifier hs-var">SavedCommand</span></a></span></span><span> </span><span id="local-6989586621679099379"><span class="annot"><a href="#local-6989586621679099379"><span class="hs-identifier hs-type">m</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><a href="System.Console.Haskeline.Command.html#Command"><span class="hs-identifier hs-type">Command</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="System.Console.Haskeline.Vi.html#ViT"><span class="hs-identifier hs-type">ViT</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679099379"><span class="hs-identifier hs-type">m</span></a></span><span class="hs-special">)</span><span> </span><span class="hs-special">(</span><span class="annot"><a href="System.Console.Haskeline.LineState.html#ArgMode"><span class="hs-identifier hs-type">ArgMode</span></a></span><span> </span><span class="annot"><a href="System.Console.Haskeline.LineState.html#CommandMode"><span class="hs-identifier hs-type">CommandMode</span></a></span><span class="hs-special">)</span><span> </span><span class="annot"><a href="System.Console.Haskeline.Vi.html#EitherMode"><span class="hs-identifier hs-type">EitherMode</span></a></span><span>
</span><span id="line-23"></span><span>
</span><span id="line-24"></span><span class="hs-keyword">data</span><span> </span><span id="ViState"><span class="annot"><a href="System.Console.Haskeline.Vi.html#ViState"><span class="hs-identifier hs-var">ViState</span></a></span></span><span> </span><span id="local-6989586621679099657"><span class="annot"><a href="#local-6989586621679099657"><span class="hs-identifier hs-type">m</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span id="ViState"><span class="annot"><a href="System.Console.Haskeline.Vi.html#ViState"><span class="hs-identifier hs-var">ViState</span></a></span></span><span> </span><span class="hs-special">{</span><span> </span><span>
</span><span id="line-25"></span><span>            </span><span id="lastCommand"><span class="annot"><span class="annottext">forall (m :: * -&gt; *). ViState m -&gt; SavedCommand m
</span><a href="System.Console.Haskeline.Vi.html#lastCommand"><span class="hs-identifier hs-var hs-var">lastCommand</span></a></span></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="System.Console.Haskeline.Vi.html#SavedCommand"><span class="hs-identifier hs-type">SavedCommand</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679099657"><span class="hs-identifier hs-type">m</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-26"></span><span>            </span><span id="lastSearch"><span class="annot"><span class="annottext">forall (m :: * -&gt; *). ViState m -&gt; [Grapheme]
</span><a href="System.Console.Haskeline.Vi.html#lastSearch"><span class="hs-identifier hs-var hs-var">lastSearch</span></a></span></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="hs-special">[</span><span class="annot"><a href="System.Console.Haskeline.LineState.html#Grapheme"><span class="hs-identifier hs-type">Grapheme</span></a></span><span class="hs-special">]</span><span>
</span><span id="line-27"></span><span>         </span><span class="hs-special">}</span><span>
</span><span id="line-28"></span><span>
</span><span id="line-29"></span><span id="local-6989586621679099651"><span class="annot"><a href="System.Console.Haskeline.Vi.html#emptyViState"><span class="hs-identifier hs-type">emptyViState</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="../../base/src/GHC.Base.html#Monad"><span class="hs-identifier hs-type">Monad</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679099651"><span class="hs-identifier hs-type">m</span></a></span><span> </span><span class="hs-glyph">=&gt;</span><span> </span><span class="annot"><a href="System.Console.Haskeline.Vi.html#ViState"><span class="hs-identifier hs-type">ViState</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679099651"><span class="hs-identifier hs-type">m</span></a></span></span><span>
</span><span id="line-30"></span><span id="emptyViState"><span class="annot"><span class="annottext">emptyViState :: forall (m :: * -&gt; *). Monad m =&gt; ViState m
</span><a href="System.Console.Haskeline.Vi.html#emptyViState"><span class="hs-identifier hs-var hs-var">emptyViState</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">ViState :: forall (m :: * -&gt; *). SavedCommand m -&gt; [Grapheme] -&gt; ViState m
</span><a href="System.Console.Haskeline.Vi.html#ViState"><span class="hs-identifier hs-type">ViState</span></a></span><span> </span><span class="hs-special">{</span><span>
</span><span id="line-31"></span><span>            </span><span class="annot"><span class="annottext">lastCommand :: SavedCommand m
</span><a href="System.Console.Haskeline.Vi.html#lastCommand"><span class="hs-identifier hs-var">lastCommand</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Either CommandMode InsertMode
-&gt; CmdM (ViT m) (Either CommandMode InsertMode)
forall (m :: * -&gt; *) a. Monad m =&gt; a -&gt; m a
</span><a href="../../base/src/GHC.Base.html#return"><span class="hs-identifier hs-var">return</span></a></span><span> </span><span class="annot"><span class="annottext">(Either CommandMode InsertMode
 -&gt; CmdM (ViT m) (Either CommandMode InsertMode))
-&gt; (ArgMode CommandMode -&gt; Either CommandMode InsertMode)
-&gt; SavedCommand m
forall b c a. (b -&gt; c) -&gt; (a -&gt; b) -&gt; a -&gt; c
</span><a href="../../base/src/GHC.Base.html#."><span class="hs-operator hs-var">.</span></a></span><span> </span><span class="annot"><span class="annottext">CommandMode -&gt; Either CommandMode InsertMode
forall a b. a -&gt; Either a b
</span><a href="../../base/src/Data.Either.html#Left"><span class="hs-identifier hs-var">Left</span></a></span><span> </span><span class="annot"><span class="annottext">(CommandMode -&gt; Either CommandMode InsertMode)
-&gt; (ArgMode CommandMode -&gt; CommandMode)
-&gt; ArgMode CommandMode
-&gt; Either CommandMode InsertMode
forall b c a. (b -&gt; c) -&gt; (a -&gt; b) -&gt; a -&gt; c
</span><a href="../../base/src/GHC.Base.html#."><span class="hs-operator hs-var">.</span></a></span><span> </span><span class="annot"><span class="annottext">ArgMode CommandMode -&gt; CommandMode
forall s. ArgMode s -&gt; s
</span><a href="System.Console.Haskeline.LineState.html#argState"><span class="hs-identifier hs-var hs-var">argState</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-32"></span><span>            </span><span class="annot"><span class="annottext">lastSearch :: [Grapheme]
</span><a href="System.Console.Haskeline.Vi.html#lastSearch"><span class="hs-identifier hs-var">lastSearch</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="hs-special">[</span><span class="hs-special">]</span><span>
</span><span id="line-33"></span><span>        </span><span class="hs-special">}</span><span>
</span><span id="line-34"></span><span>
</span><span id="line-35"></span><span class="hs-keyword">type</span><span> </span><span id="ViT"><span class="annot"><a href="System.Console.Haskeline.Vi.html#ViT"><span class="hs-identifier hs-var">ViT</span></a></span></span><span> </span><span id="local-6989586621679099360"><span class="annot"><a href="#local-6989586621679099360"><span class="hs-identifier hs-type">m</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><a href="../../transformers/src/Control.Monad.Trans.State.Strict.html#StateT"><span class="hs-identifier hs-type">StateT</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="System.Console.Haskeline.Vi.html#ViState"><span class="hs-identifier hs-type">ViState</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679099360"><span class="hs-identifier hs-type">m</span></a></span><span class="hs-special">)</span><span> </span><span class="hs-special">(</span><span class="annot"><a href="System.Console.Haskeline.InputT.html#InputCmdT"><span class="hs-identifier hs-type">InputCmdT</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679099360"><span class="hs-identifier hs-type">m</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-36"></span><span>
</span><span id="line-37"></span><span class="hs-keyword">type</span><span> </span><span id="InputCmd"><span class="annot"><a href="System.Console.Haskeline.Vi.html#InputCmd"><span class="hs-identifier hs-var">InputCmd</span></a></span></span><span> </span><span id="local-6989586621679099359"><span class="annot"><a href="#local-6989586621679099359"><span class="hs-identifier hs-type">s</span></a></span></span><span> </span><span id="local-6989586621679099358"><span class="annot"><a href="#local-6989586621679099358"><span class="hs-identifier hs-type">t</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="hs-keyword">forall</span><span> </span><span id="local-6989586621679099357"><span class="annot"><a href="#local-6989586621679099357"><span class="hs-identifier hs-type">m</span></a></span></span><span> </span><span class="hs-operator">.</span><span> </span><span class="hs-special">(</span><span class="annot"><a href="../../base/src/Control.Monad.IO.Class.html#MonadIO"><span class="hs-identifier hs-type">MonadIO</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679099357"><span class="hs-identifier hs-type">m</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="../../exceptions/src/Control.Monad.Catch.html#MonadMask"><span class="hs-identifier hs-type">MonadMask</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679099357"><span class="hs-identifier hs-type">m</span></a></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=&gt;</span><span> </span><span class="annot"><a href="System.Console.Haskeline.Command.html#Command"><span class="hs-identifier hs-type">Command</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="System.Console.Haskeline.Vi.html#ViT"><span class="hs-identifier hs-type">ViT</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679099357"><span class="hs-identifier hs-type">m</span></a></span><span class="hs-special">)</span><span> </span><span class="annot"><a href="#local-6989586621679099359"><span class="hs-identifier hs-type">s</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679099358"><span class="hs-identifier hs-type">t</span></a></span><span>
</span><span id="line-38"></span><span class="hs-keyword">type</span><span> </span><span id="InputKeyCmd"><span class="annot"><a href="System.Console.Haskeline.Vi.html#InputKeyCmd"><span class="hs-identifier hs-var">InputKeyCmd</span></a></span></span><span> </span><span id="local-6989586621679099356"><span class="annot"><a href="#local-6989586621679099356"><span class="hs-identifier hs-type">s</span></a></span></span><span> </span><span id="local-6989586621679099355"><span class="annot"><a href="#local-6989586621679099355"><span class="hs-identifier hs-type">t</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="hs-keyword">forall</span><span> </span><span id="local-6989586621679099354"><span class="annot"><a href="#local-6989586621679099354"><span class="hs-identifier hs-type">m</span></a></span></span><span> </span><span class="hs-operator">.</span><span> </span><span class="hs-special">(</span><span class="annot"><a href="../../base/src/Control.Monad.IO.Class.html#MonadIO"><span class="hs-identifier hs-type">MonadIO</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679099354"><span class="hs-identifier hs-type">m</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="../../exceptions/src/Control.Monad.Catch.html#MonadMask"><span class="hs-identifier hs-type">MonadMask</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679099354"><span class="hs-identifier hs-type">m</span></a></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=&gt;</span><span> </span><span class="annot"><a href="System.Console.Haskeline.Command.html#KeyCommand"><span class="hs-identifier hs-type">KeyCommand</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="System.Console.Haskeline.Vi.html#ViT"><span class="hs-identifier hs-type">ViT</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679099354"><span class="hs-identifier hs-type">m</span></a></span><span class="hs-special">)</span><span> </span><span class="annot"><a href="#local-6989586621679099356"><span class="hs-identifier hs-type">s</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679099355"><span class="hs-identifier hs-type">t</span></a></span><span>
</span><span id="line-39"></span><span>
</span><span id="line-40"></span><span class="annot"><a href="System.Console.Haskeline.Vi.html#viKeyCommands"><span class="hs-identifier hs-type">viKeyCommands</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="System.Console.Haskeline.Vi.html#InputKeyCmd"><span class="hs-identifier hs-type">InputKeyCmd</span></a></span><span> </span><span class="annot"><a href="System.Console.Haskeline.LineState.html#InsertMode"><span class="hs-identifier hs-type">InsertMode</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="../../base/src/GHC.Maybe.html#Maybe"><span class="hs-identifier hs-type">Maybe</span></a></span><span> </span><span class="annot"><a href="../../base/src/GHC.Base.html#String"><span class="hs-identifier hs-type">String</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-41"></span><span id="viKeyCommands"><span class="annot"><span class="annottext">viKeyCommands :: InputKeyCmd InsertMode (Maybe String)
</span><a href="System.Console.Haskeline.Vi.html#viKeyCommands"><span class="hs-identifier hs-var hs-var">viKeyCommands</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">[KeyMap (Command (ViT m) InsertMode (Maybe String))]
-&gt; KeyMap (Command (ViT m) InsertMode (Maybe String))
forall a. [KeyMap a] -&gt; KeyMap a
</span><a href="System.Console.Haskeline.Command.html#choiceCmd"><span class="hs-identifier hs-var">choiceCmd</span></a></span><span> </span><span class="hs-special">[</span><span>
</span><span id="line-42"></span><span>                </span><span class="annot"><span class="annottext">Char -&gt; Key
</span><a href="System.Console.Haskeline.Key.html#simpleChar"><span class="hs-identifier hs-var">simpleChar</span></a></span><span> </span><span class="annot"><span class="annottext">Char
</span><span class="hs-char">'\n'</span></span><span> </span><span class="annot"><span class="annottext">Key
-&gt; Command (ViT m) InsertMode (Maybe String)
-&gt; KeyMap (Command (ViT m) InsertMode (Maybe String))
forall a. Key -&gt; a -&gt; KeyMap a
</span><a href="System.Console.Haskeline.Command.html#%2B%3E"><span class="hs-operator hs-var">+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">Command (ViT m) InsertMode (Maybe String)
forall (m :: * -&gt; *) s.
(Monad m, Result s) =&gt;
Command m s (Maybe String)
</span><a href="System.Console.Haskeline.Command.html#finish"><span class="hs-identifier hs-var">finish</span></a></span><span>
</span><span id="line-43"></span><span>                </span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">Char -&gt; Key
</span><a href="System.Console.Haskeline.Key.html#ctrlChar"><span class="hs-identifier hs-var">ctrlChar</span></a></span><span> </span><span class="annot"><span class="annottext">Char
</span><span class="hs-char">'d'</span></span><span> </span><span class="annot"><span class="annottext">Key
-&gt; Command (ViT m) InsertMode (Maybe String)
-&gt; KeyMap (Command (ViT m) InsertMode (Maybe String))
forall a. Key -&gt; a -&gt; KeyMap a
</span><a href="System.Console.Haskeline.Command.html#%2B%3E"><span class="hs-operator hs-var">+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">Command (ViT m) InsertMode (Maybe String)
forall (m :: * -&gt; *) s.
(Monad m, Save s, Result s) =&gt;
Command m s (Maybe String)
</span><a href="System.Console.Haskeline.Vi.html#eofIfEmpty"><span class="hs-identifier hs-var">eofIfEmpty</span></a></span><span>
</span><span id="line-44"></span><span>                </span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">KeyCommand (ViT m) InsertMode InsertMode
InputKeyCmd InsertMode InsertMode
</span><a href="System.Console.Haskeline.Vi.html#simpleInsertions"><span class="hs-identifier hs-var">simpleInsertions</span></a></span><span> </span><span class="annot"><span class="annottext">KeyCommand (ViT m) InsertMode InsertMode
-&gt; Command (ViT m) InsertMode (Maybe String)
-&gt; KeyMap (Command (ViT m) InsertMode (Maybe String))
forall (m :: * -&gt; *) s t u.
Monad m =&gt;
KeyCommand m s t -&gt; Command m t u -&gt; KeyCommand m s u
</span><a href="System.Console.Haskeline.Command.html#%3E%2B%3E"><span class="hs-operator hs-var">&gt;+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">Command (ViT m) InsertMode (Maybe String)
InputCmd InsertMode (Maybe String)
</span><a href="System.Console.Haskeline.Vi.html#viCommands"><span class="hs-identifier hs-var">viCommands</span></a></span><span>
</span><span id="line-45"></span><span>                </span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">Char -&gt; Key
</span><a href="System.Console.Haskeline.Key.html#simpleChar"><span class="hs-identifier hs-var">simpleChar</span></a></span><span> </span><span class="annot"><span class="annottext">Char
</span><span class="hs-char">'\ESC'</span></span><span> </span><span class="annot"><span class="annottext">Key
-&gt; Command (ViT m) InsertMode (Maybe String)
-&gt; KeyMap (Command (ViT m) InsertMode (Maybe String))
forall a. Key -&gt; a -&gt; KeyMap a
</span><a href="System.Console.Haskeline.Command.html#%2B%3E"><span class="hs-operator hs-var">+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">(InsertMode -&gt; CommandMode)
-&gt; Command (ViT m) InsertMode CommandMode
forall t (m :: * -&gt; *) s.
(LineState t, Monad m) =&gt;
(s -&gt; t) -&gt; Command m s t
</span><a href="System.Console.Haskeline.Command.html#change"><span class="hs-identifier hs-var">change</span></a></span><span> </span><span class="annot"><span class="annottext">InsertMode -&gt; CommandMode
</span><a href="System.Console.Haskeline.LineState.html#enterCommandMode"><span class="hs-identifier hs-var">enterCommandMode</span></a></span><span>
</span><span id="line-46"></span><span>                    </span><span class="annot"><span class="annottext">Command (ViT m) InsertMode CommandMode
-&gt; Command (ViT m) CommandMode (Maybe String)
-&gt; Command (ViT m) InsertMode (Maybe String)
forall (m :: * -&gt; *) s t u.
Monad m =&gt;
Command m s t -&gt; Command m t u -&gt; Command m s u
</span><a href="System.Console.Haskeline.Command.html#%3E%7C%3E"><span class="hs-operator hs-var">&gt;|&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">Command (ViT m) CommandMode (Maybe String)
InputCmd CommandMode (Maybe String)
</span><a href="System.Console.Haskeline.Vi.html#viCommandActions"><span class="hs-identifier hs-var">viCommandActions</span></a></span><span>
</span><span id="line-47"></span><span>                </span><span class="hs-special">]</span><span>
</span><span id="line-48"></span><span>
</span><span id="line-49"></span><span class="annot"><a href="System.Console.Haskeline.Vi.html#viCommands"><span class="hs-identifier hs-type">viCommands</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="System.Console.Haskeline.Vi.html#InputCmd"><span class="hs-identifier hs-type">InputCmd</span></a></span><span> </span><span class="annot"><a href="System.Console.Haskeline.LineState.html#InsertMode"><span class="hs-identifier hs-type">InsertMode</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="../../base/src/GHC.Maybe.html#Maybe"><span class="hs-identifier hs-type">Maybe</span></a></span><span> </span><span class="annot"><a href="../../base/src/GHC.Base.html#String"><span class="hs-identifier hs-type">String</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-50"></span><span id="viCommands"><span class="annot"><span class="annottext">viCommands :: InputCmd InsertMode (Maybe String)
</span><a href="System.Console.Haskeline.Vi.html#viCommands"><span class="hs-identifier hs-var hs-var">viCommands</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">KeyCommand (ViT m) InsertMode (Maybe String)
-&gt; Command (ViT m) InsertMode (Maybe String)
forall (m :: * -&gt; *) s t. KeyCommand m s t -&gt; Command m s t
</span><a href="System.Console.Haskeline.Command.html#keyCommand"><span class="hs-identifier hs-var">keyCommand</span></a></span><span> </span><span class="annot"><span class="annottext">KeyCommand (ViT m) InsertMode (Maybe String)
InputKeyCmd InsertMode (Maybe String)
</span><a href="System.Console.Haskeline.Vi.html#viKeyCommands"><span class="hs-identifier hs-var">viKeyCommands</span></a></span><span>
</span><span id="line-51"></span><span>
</span><span id="line-52"></span><span class="annot"><a href="System.Console.Haskeline.Vi.html#simpleInsertions"><span class="hs-identifier hs-type">simpleInsertions</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="System.Console.Haskeline.Vi.html#InputKeyCmd"><span class="hs-identifier hs-type">InputKeyCmd</span></a></span><span> </span><span class="annot"><a href="System.Console.Haskeline.LineState.html#InsertMode"><span class="hs-identifier hs-type">InsertMode</span></a></span><span> </span><span class="annot"><a href="System.Console.Haskeline.LineState.html#InsertMode"><span class="hs-identifier hs-type">InsertMode</span></a></span><span>
</span><span id="line-53"></span><span id="simpleInsertions"><span class="annot"><span class="annottext">simpleInsertions :: InputKeyCmd InsertMode InsertMode
</span><a href="System.Console.Haskeline.Vi.html#simpleInsertions"><span class="hs-identifier hs-var hs-var">simpleInsertions</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">[KeyMap (Command (ViT m) InsertMode InsertMode)]
-&gt; KeyMap (Command (ViT m) InsertMode InsertMode)
forall a. [KeyMap a] -&gt; KeyMap a
</span><a href="System.Console.Haskeline.Command.html#choiceCmd"><span class="hs-identifier hs-var">choiceCmd</span></a></span><span>
</span><span id="line-54"></span><span>                </span><span class="hs-special">[</span><span>  </span><span class="annot"><span class="annottext">BaseKey -&gt; Key
</span><a href="System.Console.Haskeline.Key.html#simpleKey"><span class="hs-identifier hs-var">simpleKey</span></a></span><span> </span><span class="annot"><span class="annottext">BaseKey
</span><a href="System.Console.Haskeline.Key.html#LeftKey"><span class="hs-identifier hs-var">LeftKey</span></a></span><span> </span><span class="annot"><span class="annottext">Key
-&gt; Command (ViT m) InsertMode InsertMode
-&gt; KeyMap (Command (ViT m) InsertMode InsertMode)
forall a. Key -&gt; a -&gt; KeyMap a
</span><a href="System.Console.Haskeline.Command.html#%2B%3E"><span class="hs-operator hs-var">+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">(InsertMode -&gt; InsertMode) -&gt; Command (ViT m) InsertMode InsertMode
forall t (m :: * -&gt; *) s.
(LineState t, Monad m) =&gt;
(s -&gt; t) -&gt; Command m s t
</span><a href="System.Console.Haskeline.Command.html#change"><span class="hs-identifier hs-var">change</span></a></span><span> </span><span class="annot"><span class="annottext">InsertMode -&gt; InsertMode
forall s. Move s =&gt; s -&gt; s
</span><a href="System.Console.Haskeline.LineState.html#goLeft"><span class="hs-identifier hs-var">goLeft</span></a></span><span> </span><span>
</span><span id="line-55"></span><span>                   </span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">BaseKey -&gt; Key
</span><a href="System.Console.Haskeline.Key.html#simpleKey"><span class="hs-identifier hs-var">simpleKey</span></a></span><span> </span><span class="annot"><span class="annottext">BaseKey
</span><a href="System.Console.Haskeline.Key.html#RightKey"><span class="hs-identifier hs-var">RightKey</span></a></span><span> </span><span class="annot"><span class="annottext">Key
-&gt; Command (ViT m) InsertMode InsertMode
-&gt; KeyMap (Command (ViT m) InsertMode InsertMode)
forall a. Key -&gt; a -&gt; KeyMap a
</span><a href="System.Console.Haskeline.Command.html#%2B%3E"><span class="hs-operator hs-var">+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">(InsertMode -&gt; InsertMode) -&gt; Command (ViT m) InsertMode InsertMode
forall t (m :: * -&gt; *) s.
(LineState t, Monad m) =&gt;
(s -&gt; t) -&gt; Command m s t
</span><a href="System.Console.Haskeline.Command.html#change"><span class="hs-identifier hs-var">change</span></a></span><span> </span><span class="annot"><span class="annottext">InsertMode -&gt; InsertMode
forall s. Move s =&gt; s -&gt; s
</span><a href="System.Console.Haskeline.LineState.html#goRight"><span class="hs-identifier hs-var">goRight</span></a></span><span>
</span><span id="line-56"></span><span>                   </span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">BaseKey -&gt; Key
</span><a href="System.Console.Haskeline.Key.html#simpleKey"><span class="hs-identifier hs-var">simpleKey</span></a></span><span> </span><span class="annot"><span class="annottext">BaseKey
</span><a href="System.Console.Haskeline.Key.html#Backspace"><span class="hs-identifier hs-var">Backspace</span></a></span><span> </span><span class="annot"><span class="annottext">Key
-&gt; Command (ViT m) InsertMode InsertMode
-&gt; KeyMap (Command (ViT m) InsertMode InsertMode)
forall a. Key -&gt; a -&gt; KeyMap a
</span><a href="System.Console.Haskeline.Command.html#%2B%3E"><span class="hs-operator hs-var">+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">(InsertMode -&gt; InsertMode) -&gt; Command (ViT m) InsertMode InsertMode
forall t (m :: * -&gt; *) s.
(LineState t, Monad m) =&gt;
(s -&gt; t) -&gt; Command m s t
</span><a href="System.Console.Haskeline.Command.html#change"><span class="hs-identifier hs-var">change</span></a></span><span> </span><span class="annot"><span class="annottext">InsertMode -&gt; InsertMode
</span><a href="System.Console.Haskeline.LineState.html#deletePrev"><span class="hs-identifier hs-var">deletePrev</span></a></span><span> </span><span>
</span><span id="line-57"></span><span>                   </span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">BaseKey -&gt; Key
</span><a href="System.Console.Haskeline.Key.html#simpleKey"><span class="hs-identifier hs-var">simpleKey</span></a></span><span> </span><span class="annot"><span class="annottext">BaseKey
</span><a href="System.Console.Haskeline.Key.html#Delete"><span class="hs-identifier hs-var">Delete</span></a></span><span> </span><span class="annot"><span class="annottext">Key
-&gt; Command (ViT m) InsertMode InsertMode
-&gt; KeyMap (Command (ViT m) InsertMode InsertMode)
forall a. Key -&gt; a -&gt; KeyMap a
</span><a href="System.Console.Haskeline.Command.html#%2B%3E"><span class="hs-operator hs-var">+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">(InsertMode -&gt; InsertMode) -&gt; Command (ViT m) InsertMode InsertMode
forall t (m :: * -&gt; *) s.
(LineState t, Monad m) =&gt;
(s -&gt; t) -&gt; Command m s t
</span><a href="System.Console.Haskeline.Command.html#change"><span class="hs-identifier hs-var">change</span></a></span><span> </span><span class="annot"><span class="annottext">InsertMode -&gt; InsertMode
</span><a href="System.Console.Haskeline.LineState.html#deleteNext"><span class="hs-identifier hs-var">deleteNext</span></a></span><span> </span><span>
</span><span id="line-58"></span><span>                   </span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">BaseKey -&gt; Key
</span><a href="System.Console.Haskeline.Key.html#simpleKey"><span class="hs-identifier hs-var">simpleKey</span></a></span><span> </span><span class="annot"><span class="annottext">BaseKey
</span><a href="System.Console.Haskeline.Key.html#Home"><span class="hs-identifier hs-var">Home</span></a></span><span> </span><span class="annot"><span class="annottext">Key
-&gt; Command (ViT m) InsertMode InsertMode
-&gt; KeyMap (Command (ViT m) InsertMode InsertMode)
forall a. Key -&gt; a -&gt; KeyMap a
</span><a href="System.Console.Haskeline.Command.html#%2B%3E"><span class="hs-operator hs-var">+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">(InsertMode -&gt; InsertMode) -&gt; Command (ViT m) InsertMode InsertMode
forall t (m :: * -&gt; *) s.
(LineState t, Monad m) =&gt;
(s -&gt; t) -&gt; Command m s t
</span><a href="System.Console.Haskeline.Command.html#change"><span class="hs-identifier hs-var">change</span></a></span><span> </span><span class="annot"><span class="annottext">InsertMode -&gt; InsertMode
forall s. Move s =&gt; s -&gt; s
</span><a href="System.Console.Haskeline.LineState.html#moveToStart"><span class="hs-identifier hs-var">moveToStart</span></a></span><span>
</span><span id="line-59"></span><span>                   </span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">BaseKey -&gt; Key
</span><a href="System.Console.Haskeline.Key.html#simpleKey"><span class="hs-identifier hs-var">simpleKey</span></a></span><span> </span><span class="annot"><span class="annottext">BaseKey
</span><a href="System.Console.Haskeline.Key.html#End"><span class="hs-identifier hs-var">End</span></a></span><span> </span><span class="annot"><span class="annottext">Key
-&gt; Command (ViT m) InsertMode InsertMode
-&gt; KeyMap (Command (ViT m) InsertMode InsertMode)
forall a. Key -&gt; a -&gt; KeyMap a
</span><a href="System.Console.Haskeline.Command.html#%2B%3E"><span class="hs-operator hs-var">+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">(InsertMode -&gt; InsertMode) -&gt; Command (ViT m) InsertMode InsertMode
forall t (m :: * -&gt; *) s.
(LineState t, Monad m) =&gt;
(s -&gt; t) -&gt; Command m s t
</span><a href="System.Console.Haskeline.Command.html#change"><span class="hs-identifier hs-var">change</span></a></span><span> </span><span class="annot"><span class="annottext">InsertMode -&gt; InsertMode
forall s. Move s =&gt; s -&gt; s
</span><a href="System.Console.Haskeline.LineState.html#moveToEnd"><span class="hs-identifier hs-var">moveToEnd</span></a></span><span>
</span><span id="line-60"></span><span>                   </span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">KeyMap (Command (ViT m) InsertMode InsertMode)
InputKeyCmd InsertMode InsertMode
</span><a href="System.Console.Haskeline.Vi.html#insertChars"><span class="hs-identifier hs-var">insertChars</span></a></span><span>
</span><span id="line-61"></span><span>                   </span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">Char -&gt; Key
</span><a href="System.Console.Haskeline.Key.html#ctrlChar"><span class="hs-identifier hs-var">ctrlChar</span></a></span><span> </span><span class="annot"><span class="annottext">Char
</span><span class="hs-char">'l'</span></span><span> </span><span class="annot"><span class="annottext">Key
-&gt; Command (ViT m) InsertMode InsertMode
-&gt; KeyMap (Command (ViT m) InsertMode InsertMode)
forall a. Key -&gt; a -&gt; KeyMap a
</span><a href="System.Console.Haskeline.Command.html#%2B%3E"><span class="hs-operator hs-var">+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">Command (ViT m) InsertMode InsertMode
forall (m :: * -&gt; *) s. Command m s s
</span><a href="System.Console.Haskeline.Command.html#clearScreenCmd"><span class="hs-identifier hs-var">clearScreenCmd</span></a></span><span>
</span><span id="line-62"></span><span>                   </span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">BaseKey -&gt; Key
</span><a href="System.Console.Haskeline.Key.html#simpleKey"><span class="hs-identifier hs-var">simpleKey</span></a></span><span> </span><span class="annot"><span class="annottext">BaseKey
</span><a href="System.Console.Haskeline.Key.html#UpKey"><span class="hs-identifier hs-var">UpKey</span></a></span><span> </span><span class="annot"><span class="annottext">Key
-&gt; Command (ViT m) InsertMode InsertMode
-&gt; KeyMap (Command (ViT m) InsertMode InsertMode)
forall a. Key -&gt; a -&gt; KeyMap a
</span><a href="System.Console.Haskeline.Command.html#%2B%3E"><span class="hs-operator hs-var">+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">Command (ViT m) InsertMode InsertMode
forall s (m :: * -&gt; *).
(Save s, MonadState HistLog m) =&gt;
Command m s s
</span><a href="System.Console.Haskeline.Command.History.html#historyBack"><span class="hs-identifier hs-var">historyBack</span></a></span><span>
</span><span id="line-63"></span><span>                   </span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">BaseKey -&gt; Key
</span><a href="System.Console.Haskeline.Key.html#simpleKey"><span class="hs-identifier hs-var">simpleKey</span></a></span><span> </span><span class="annot"><span class="annottext">BaseKey
</span><a href="System.Console.Haskeline.Key.html#DownKey"><span class="hs-identifier hs-var">DownKey</span></a></span><span> </span><span class="annot"><span class="annottext">Key
-&gt; Command (ViT m) InsertMode InsertMode
-&gt; KeyMap (Command (ViT m) InsertMode InsertMode)
forall a. Key -&gt; a -&gt; KeyMap a
</span><a href="System.Console.Haskeline.Command.html#%2B%3E"><span class="hs-operator hs-var">+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">Command (ViT m) InsertMode InsertMode
forall s (m :: * -&gt; *).
(Save s, MonadState HistLog m) =&gt;
Command m s s
</span><a href="System.Console.Haskeline.Command.History.html#historyForward"><span class="hs-identifier hs-var">historyForward</span></a></span><span>
</span><span id="line-64"></span><span>                   </span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">BaseKey -&gt; Key
</span><a href="System.Console.Haskeline.Key.html#simpleKey"><span class="hs-identifier hs-var">simpleKey</span></a></span><span> </span><span class="annot"><span class="annottext">BaseKey
</span><a href="System.Console.Haskeline.Key.html#SearchReverse"><span class="hs-identifier hs-var">SearchReverse</span></a></span><span> </span><span class="annot"><span class="annottext">Key
-&gt; Command (ViT m) InsertMode InsertMode
-&gt; KeyMap (Command (ViT m) InsertMode InsertMode)
forall a. Key -&gt; a -&gt; KeyMap a
</span><a href="System.Console.Haskeline.Command.html#%2B%3E"><span class="hs-operator hs-var">+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">Direction -&gt; Command (ViT m) InsertMode InsertMode
forall (m :: * -&gt; *).
MonadState HistLog m =&gt;
Direction -&gt; Command m InsertMode InsertMode
</span><a href="System.Console.Haskeline.Command.History.html#searchForPrefix"><span class="hs-identifier hs-var">searchForPrefix</span></a></span><span> </span><span class="annot"><span class="annottext">Direction
</span><a href="System.Console.Haskeline.Command.History.html#Reverse"><span class="hs-identifier hs-var">Reverse</span></a></span><span>
</span><span id="line-65"></span><span>                   </span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">BaseKey -&gt; Key
</span><a href="System.Console.Haskeline.Key.html#simpleKey"><span class="hs-identifier hs-var">simpleKey</span></a></span><span> </span><span class="annot"><span class="annottext">BaseKey
</span><a href="System.Console.Haskeline.Key.html#SearchForward"><span class="hs-identifier hs-var">SearchForward</span></a></span><span> </span><span class="annot"><span class="annottext">Key
-&gt; Command (ViT m) InsertMode InsertMode
-&gt; KeyMap (Command (ViT m) InsertMode InsertMode)
forall a. Key -&gt; a -&gt; KeyMap a
</span><a href="System.Console.Haskeline.Command.html#%2B%3E"><span class="hs-operator hs-var">+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">Direction -&gt; Command (ViT m) InsertMode InsertMode
forall (m :: * -&gt; *).
MonadState HistLog m =&gt;
Direction -&gt; Command m InsertMode InsertMode
</span><a href="System.Console.Haskeline.Command.History.html#searchForPrefix"><span class="hs-identifier hs-var">searchForPrefix</span></a></span><span> </span><span class="annot"><span class="annottext">Direction
</span><a href="System.Console.Haskeline.Command.History.html#Forward"><span class="hs-identifier hs-var">Forward</span></a></span><span>
</span><span id="line-66"></span><span>                   </span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">KeyMap (Command (ViT m) InsertMode InsertMode)
forall (m :: * -&gt; *).
MonadState HistLog m =&gt;
KeyCommand m InsertMode InsertMode
</span><a href="System.Console.Haskeline.Command.History.html#searchHistory"><span class="hs-identifier hs-var">searchHistory</span></a></span><span>
</span><span id="line-67"></span><span>                   </span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">BaseKey -&gt; Key
</span><a href="System.Console.Haskeline.Key.html#simpleKey"><span class="hs-identifier hs-var">simpleKey</span></a></span><span> </span><span class="annot"><span class="annottext">BaseKey
</span><a href="System.Console.Haskeline.Key.html#KillLine"><span class="hs-identifier hs-var">KillLine</span></a></span><span> </span><span class="annot"><span class="annottext">Key
-&gt; Command (ViT m) InsertMode InsertMode
-&gt; KeyMap (Command (ViT m) InsertMode InsertMode)
forall a. Key -&gt; a -&gt; KeyMap a
</span><a href="System.Console.Haskeline.Command.html#%2B%3E"><span class="hs-operator hs-var">+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">KillHelper -&gt; Command (ViT m) InsertMode InsertMode
forall (m :: * -&gt; *) s t.
(MonadState KillRing m, MonadState Undo m, Save s, Save t) =&gt;
KillHelper -&gt; Command m s t
</span><a href="System.Console.Haskeline.Command.KillRing.html#killFromHelper"><span class="hs-identifier hs-var">killFromHelper</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">(InsertMode -&gt; InsertMode) -&gt; KillHelper
</span><a href="System.Console.Haskeline.Command.KillRing.html#SimpleMove"><span class="hs-identifier hs-var">SimpleMove</span></a></span><span> </span><span class="annot"><span class="annottext">InsertMode -&gt; InsertMode
forall s. Move s =&gt; s -&gt; s
</span><a href="System.Console.Haskeline.LineState.html#moveToStart"><span class="hs-identifier hs-var">moveToStart</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-68"></span><span>                   </span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">Char -&gt; Key
</span><a href="System.Console.Haskeline.Key.html#ctrlChar"><span class="hs-identifier hs-var">ctrlChar</span></a></span><span> </span><span class="annot"><span class="annottext">Char
</span><span class="hs-char">'w'</span></span><span> </span><span class="annot"><span class="annottext">Key
-&gt; Command (ViT m) InsertMode InsertMode
-&gt; KeyMap (Command (ViT m) InsertMode InsertMode)
forall a. Key -&gt; a -&gt; KeyMap a
</span><a href="System.Console.Haskeline.Command.html#%2B%3E"><span class="hs-operator hs-var">+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">KillHelper -&gt; Command (ViT m) InsertMode InsertMode
forall (m :: * -&gt; *) s t.
(MonadState KillRing m, MonadState Undo m, Save s, Save t) =&gt;
KillHelper -&gt; Command m s t
</span><a href="System.Console.Haskeline.Command.KillRing.html#killFromHelper"><span class="hs-identifier hs-var">killFromHelper</span></a></span><span> </span><span class="annot"><span class="annottext">KillHelper
</span><a href="System.Console.Haskeline.Vi.html#wordErase"><span class="hs-identifier hs-var">wordErase</span></a></span><span>
</span><span id="line-69"></span><span>                   </span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">Key -&gt; KeyMap (Command (ViT m) InsertMode InsertMode)
forall (m :: * -&gt; *).
(MonadState Undo m, CommandMonad m) =&gt;
Key -&gt; KeyCommand m InsertMode InsertMode
</span><a href="System.Console.Haskeline.Command.Completion.html#completionCmd"><span class="hs-identifier hs-var">completionCmd</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Char -&gt; Key
</span><a href="System.Console.Haskeline.Key.html#simpleChar"><span class="hs-identifier hs-var">simpleChar</span></a></span><span> </span><span class="annot"><span class="annottext">Char
</span><span class="hs-char">'\t'</span></span><span class="hs-special">)</span><span>
</span><span id="line-70"></span><span>                   </span><span class="hs-special">]</span><span>
</span><span id="line-71"></span><span>
</span><span id="line-72"></span><span class="annot"><a href="System.Console.Haskeline.Vi.html#insertChars"><span class="hs-identifier hs-type">insertChars</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="System.Console.Haskeline.Vi.html#InputKeyCmd"><span class="hs-identifier hs-type">InputKeyCmd</span></a></span><span> </span><span class="annot"><a href="System.Console.Haskeline.LineState.html#InsertMode"><span class="hs-identifier hs-type">InsertMode</span></a></span><span> </span><span class="annot"><a href="System.Console.Haskeline.LineState.html#InsertMode"><span class="hs-identifier hs-type">InsertMode</span></a></span><span>
</span><span id="line-73"></span><span id="insertChars"><span class="annot"><span class="annottext">insertChars :: InputKeyCmd InsertMode InsertMode
</span><a href="System.Console.Haskeline.Vi.html#insertChars"><span class="hs-identifier hs-var hs-var">insertChars</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">(Char -&gt; Command (ViT m) InsertMode InsertMode)
-&gt; KeyCommand (ViT m) InsertMode InsertMode
forall (m :: * -&gt; *) s t.
(Char -&gt; Command m s t) -&gt; KeyCommand m s t
</span><a href="System.Console.Haskeline.Command.html#useChar"><span class="hs-identifier hs-var">useChar</span></a></span><span> </span><span class="annot"><span class="annottext">((Char -&gt; Command (ViT m) InsertMode InsertMode)
 -&gt; KeyCommand (ViT m) InsertMode InsertMode)
-&gt; (Char -&gt; Command (ViT m) InsertMode InsertMode)
-&gt; KeyCommand (ViT m) InsertMode InsertMode
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="annot"><span class="annottext">String -&gt; Char -&gt; Command (ViT m) InsertMode InsertMode
forall {m :: * -&gt; *}.
Monad m =&gt;
String -&gt; Char -&gt; Command (ViT m) InsertMode InsertMode
</span><a href="#local-6989586621679099174"><span class="hs-identifier hs-var">loop</span></a></span><span> </span><span class="hs-special">[</span><span class="hs-special">]</span><span>
</span><span id="line-74"></span><span>    </span><span class="hs-keyword">where</span><span>
</span><span id="line-75"></span><span>        </span><span id="local-6989586621679099174"><span class="annot"><span class="annottext">loop :: String -&gt; Char -&gt; Command (ViT m) InsertMode InsertMode
</span><a href="#local-6989586621679099174"><span class="hs-identifier hs-var hs-var">loop</span></a></span></span><span> </span><span id="local-6989586621679099161"><span class="annot"><span class="annottext">String
</span><a href="#local-6989586621679099161"><span class="hs-identifier hs-var">ds</span></a></span></span><span> </span><span id="local-6989586621679099160"><span class="annot"><span class="annottext">Char
</span><a href="#local-6989586621679099160"><span class="hs-identifier hs-var">d</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">(InsertMode -&gt; InsertMode) -&gt; Command (ViT m) InsertMode InsertMode
forall t (m :: * -&gt; *) s.
(LineState t, Monad m) =&gt;
(s -&gt; t) -&gt; Command m s t
</span><a href="System.Console.Haskeline.Command.html#change"><span class="hs-identifier hs-var">change</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Char -&gt; InsertMode -&gt; InsertMode
</span><a href="System.Console.Haskeline.LineState.html#insertChar"><span class="hs-identifier hs-var">insertChar</span></a></span><span> </span><span class="annot"><span class="annottext">Char
</span><a href="#local-6989586621679099160"><span class="hs-identifier hs-var">d</span></a></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">Command (ViT m) InsertMode InsertMode
-&gt; Command (ViT m) InsertMode InsertMode
-&gt; Command (ViT m) InsertMode InsertMode
forall (m :: * -&gt; *) s t u.
Monad m =&gt;
Command m s t -&gt; Command m t u -&gt; Command m s u
</span><a href="System.Console.Haskeline.Command.html#%3E%7C%3E"><span class="hs-operator hs-var">&gt;|&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">[KeyCommand (ViT m) InsertMode InsertMode]
-&gt; Command (ViT m) InsertMode InsertMode
forall (m :: * -&gt; *) s t. [KeyCommand m s t] -&gt; Command m s t
</span><a href="System.Console.Haskeline.Command.html#keyChoiceCmd"><span class="hs-identifier hs-var">keyChoiceCmd</span></a></span><span> </span><span class="hs-special">[</span><span>
</span><span id="line-76"></span><span>                        </span><span class="annot"><span class="annottext">(Char -&gt; Command (ViT m) InsertMode InsertMode)
-&gt; KeyCommand (ViT m) InsertMode InsertMode
forall (m :: * -&gt; *) s t.
(Char -&gt; Command m s t) -&gt; KeyCommand m s t
</span><a href="System.Console.Haskeline.Command.html#useChar"><span class="hs-identifier hs-var">useChar</span></a></span><span> </span><span class="annot"><span class="annottext">((Char -&gt; Command (ViT m) InsertMode InsertMode)
 -&gt; KeyCommand (ViT m) InsertMode InsertMode)
-&gt; (Char -&gt; Command (ViT m) InsertMode InsertMode)
-&gt; KeyCommand (ViT m) InsertMode InsertMode
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="annot"><span class="annottext">String -&gt; Char -&gt; Command (ViT m) InsertMode InsertMode
</span><a href="#local-6989586621679099174"><span class="hs-identifier hs-var">loop</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Char
</span><a href="#local-6989586621679099160"><span class="hs-identifier hs-var">d</span></a></span><span class="annot"><span class="annottext">Char -&gt; String -&gt; String
forall a. a -&gt; [a] -&gt; [a]
</span><span class="hs-glyph hs-var">:</span></span><span class="annot"><span class="annottext">String
</span><a href="#local-6989586621679099161"><span class="hs-identifier hs-var">ds</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-77"></span><span>                        </span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">Command (ViT m) InsertMode InsertMode
-&gt; KeyCommand (ViT m) InsertMode InsertMode
forall (m :: * -&gt; *) s t. Command m s t -&gt; KeyCommand m s t
</span><a href="System.Console.Haskeline.Command.html#withoutConsuming"><span class="hs-identifier hs-var">withoutConsuming</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">String -&gt; Command (ViT m) InsertMode InsertMode
forall {m :: * -&gt; *} {s}. Monad m =&gt; String -&gt; Command (ViT m) s s
</span><a href="#local-6989586621679099156"><span class="hs-identifier hs-var">storeCharInsertion</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">String -&gt; String
forall a. [a] -&gt; [a]
</span><a href="../../base/src/GHC.List.html#reverse"><span class="hs-identifier hs-var">reverse</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><a href="#local-6989586621679099161"><span class="hs-identifier hs-var">ds</span></a></span><span class="hs-special">)</span><span class="hs-special">)</span><span>
</span><span id="line-78"></span><span>                        </span><span class="hs-special">]</span><span>
</span><span id="line-79"></span><span>        </span><span id="local-6989586621679099156"><span class="annot"><span class="annottext">storeCharInsertion :: String -&gt; Command (ViT m) s s
</span><a href="#local-6989586621679099156"><span class="hs-identifier hs-var hs-var">storeCharInsertion</span></a></span></span><span> </span><span id="local-6989586621679099142"><span class="annot"><span class="annottext">String
</span><a href="#local-6989586621679099142"><span class="hs-identifier hs-var">s</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">SavedCommand m -&gt; Command (ViT m) s s
forall (m :: * -&gt; *) s.
Monad m =&gt;
SavedCommand m -&gt; Command (ViT m) s s
</span><a href="System.Console.Haskeline.Vi.html#storeLastCmd"><span class="hs-identifier hs-var">storeLastCmd</span></a></span><span> </span><span class="annot"><span class="annottext">(SavedCommand m -&gt; Command (ViT m) s s)
-&gt; SavedCommand m -&gt; Command (ViT m) s s
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="annot"><span class="annottext">(ArgMode CommandMode -&gt; CommandMode)
-&gt; Command (ViT m) (ArgMode CommandMode) CommandMode
forall t (m :: * -&gt; *) s.
(LineState t, Monad m) =&gt;
(s -&gt; t) -&gt; Command m s t
</span><a href="System.Console.Haskeline.Command.html#change"><span class="hs-identifier hs-var">change</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">(CommandMode -&gt; CommandMode) -&gt; ArgMode CommandMode -&gt; CommandMode
forall s. (s -&gt; s) -&gt; ArgMode s -&gt; s
</span><a href="System.Console.Haskeline.LineState.html#applyArg"><span class="hs-identifier hs-var">applyArg</span></a></span><span> </span><span>
</span><span id="line-80"></span><span>                                                        </span><span class="annot"><span class="annottext">((CommandMode -&gt; CommandMode)
 -&gt; ArgMode CommandMode -&gt; CommandMode)
-&gt; (CommandMode -&gt; CommandMode)
-&gt; ArgMode CommandMode
-&gt; CommandMode
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="annot"><span class="annottext">(InsertMode -&gt; InsertMode) -&gt; CommandMode -&gt; CommandMode
</span><a href="System.Console.Haskeline.LineState.html#withCommandMode"><span class="hs-identifier hs-var">withCommandMode</span></a></span><span> </span><span class="annot"><span class="annottext">((InsertMode -&gt; InsertMode) -&gt; CommandMode -&gt; CommandMode)
-&gt; (InsertMode -&gt; InsertMode) -&gt; CommandMode -&gt; CommandMode
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="annot"><span class="annottext">String -&gt; InsertMode -&gt; InsertMode
</span><a href="System.Console.Haskeline.LineState.html#insertString"><span class="hs-identifier hs-var">insertString</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><a href="#local-6989586621679099142"><span class="hs-identifier hs-var">s</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-81"></span><span>                                                </span><span class="annot"><span class="annottext">Command (ViT m) (ArgMode CommandMode) CommandMode
-&gt; Command (ViT m) CommandMode (Either CommandMode InsertMode)
-&gt; SavedCommand m
forall (m :: * -&gt; *) s t u.
Monad m =&gt;
Command m s t -&gt; Command m t u -&gt; Command m s u
</span><a href="System.Console.Haskeline.Command.html#%3E%7C%3E"><span class="hs-operator hs-var">&gt;|&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">Either CommandMode InsertMode
-&gt; CmdM (ViT m) (Either CommandMode InsertMode)
forall (m :: * -&gt; *) a. Monad m =&gt; a -&gt; m a
</span><a href="../../base/src/GHC.Base.html#return"><span class="hs-identifier hs-var">return</span></a></span><span> </span><span class="annot"><span class="annottext">(Either CommandMode InsertMode
 -&gt; CmdM (ViT m) (Either CommandMode InsertMode))
-&gt; (CommandMode -&gt; Either CommandMode InsertMode)
-&gt; Command (ViT m) CommandMode (Either CommandMode InsertMode)
forall b c a. (b -&gt; c) -&gt; (a -&gt; b) -&gt; a -&gt; c
</span><a href="../../base/src/GHC.Base.html#."><span class="hs-operator hs-var">.</span></a></span><span> </span><span class="annot"><span class="annottext">CommandMode -&gt; Either CommandMode InsertMode
forall a b. a -&gt; Either a b
</span><a href="../../base/src/Data.Either.html#Left"><span class="hs-identifier hs-var">Left</span></a></span><span>
</span><span id="line-82"></span><span>
</span><span id="line-83"></span><span class="hs-comment">-- If we receive a ^D and the line is empty, return Nothing</span><span>
</span><span id="line-84"></span><span class="hs-comment">-- otherwise, act like '\n' (mimicing how Readline behaves)</span><span>
</span><span id="line-85"></span><span id="local-6989586621679099606"><span id="local-6989586621679099607"><span class="annot"><a href="System.Console.Haskeline.Vi.html#eofIfEmpty"><span class="hs-identifier hs-type">eofIfEmpty</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="hs-special">(</span><span class="annot"><a href="../../base/src/GHC.Base.html#Monad"><span class="hs-identifier hs-type">Monad</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679099607"><span class="hs-identifier hs-type">m</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="System.Console.Haskeline.LineState.html#Save"><span class="hs-identifier hs-type">Save</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679099606"><span class="hs-identifier hs-type">s</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="System.Console.Haskeline.LineState.html#Result"><span class="hs-identifier hs-type">Result</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679099606"><span class="hs-identifier hs-type">s</span></a></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=&gt;</span><span> </span><span class="annot"><a href="System.Console.Haskeline.Command.html#Command"><span class="hs-identifier hs-type">Command</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679099607"><span class="hs-identifier hs-type">m</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679099606"><span class="hs-identifier hs-type">s</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="../../base/src/GHC.Maybe.html#Maybe"><span class="hs-identifier hs-type">Maybe</span></a></span><span> </span><span class="annot"><a href="../../base/src/GHC.Base.html#String"><span class="hs-identifier hs-type">String</span></a></span><span class="hs-special">)</span></span></span><span>
</span><span id="line-86"></span><span id="eofIfEmpty"><span class="annot"><span class="annottext">eofIfEmpty :: forall (m :: * -&gt; *) s.
(Monad m, Save s, Result s) =&gt;
Command m s (Maybe String)
</span><a href="System.Console.Haskeline.Vi.html#eofIfEmpty"><span class="hs-identifier hs-var hs-var">eofIfEmpty</span></a></span></span><span> </span><span id="local-6989586621679099128"><span class="annot"><span class="annottext">s
</span><a href="#local-6989586621679099128"><span class="hs-identifier hs-var">s</span></a></span></span><span>
</span><span id="line-87"></span><span>    </span><span class="hs-glyph">|</span><span> </span><span class="annot"><span class="annottext">s -&gt; InsertMode
forall s. Save s =&gt; s -&gt; InsertMode
</span><a href="System.Console.Haskeline.LineState.html#save"><span class="hs-identifier hs-var">save</span></a></span><span> </span><span class="annot"><span class="annottext">s
</span><a href="#local-6989586621679099128"><span class="hs-identifier hs-var">s</span></a></span><span> </span><span class="annot"><span class="annottext">InsertMode -&gt; InsertMode -&gt; Bool
forall a. Eq a =&gt; a -&gt; a -&gt; Bool
</span><span class="hs-operator hs-var">==</span></span><span> </span><span class="annot"><span class="annottext">InsertMode
</span><a href="System.Console.Haskeline.LineState.html#emptyIM"><span class="hs-identifier hs-var">emptyIM</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Maybe String -&gt; CmdM m (Maybe String)
forall (m :: * -&gt; *) a. Monad m =&gt; a -&gt; m a
</span><a href="../../base/src/GHC.Base.html#return"><span class="hs-identifier hs-var">return</span></a></span><span> </span><span class="annot"><span class="annottext">Maybe String
forall a. Maybe a
</span><a href="../../base/src/GHC.Maybe.html#Nothing"><span class="hs-identifier hs-var">Nothing</span></a></span><span>
</span><span id="line-88"></span><span>    </span><span class="hs-glyph">|</span><span> </span><span class="annot"><span class="annottext">Bool
</span><a href="../../base/src/GHC.Base.html#otherwise"><span class="hs-identifier hs-var">otherwise</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Command m s (Maybe String)
forall (m :: * -&gt; *) s.
(Monad m, Result s) =&gt;
Command m s (Maybe String)
</span><a href="System.Console.Haskeline.Command.html#finish"><span class="hs-identifier hs-var">finish</span></a></span><span> </span><span class="annot"><span class="annottext">s
</span><a href="#local-6989586621679099128"><span class="hs-identifier hs-var">s</span></a></span><span>
</span><span id="line-89"></span><span>
</span><span id="line-90"></span><span class="annot"><a href="System.Console.Haskeline.Vi.html#viCommandActions"><span class="hs-identifier hs-type">viCommandActions</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="System.Console.Haskeline.Vi.html#InputCmd"><span class="hs-identifier hs-type">InputCmd</span></a></span><span> </span><span class="annot"><a href="System.Console.Haskeline.LineState.html#CommandMode"><span class="hs-identifier hs-type">CommandMode</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="../../base/src/GHC.Maybe.html#Maybe"><span class="hs-identifier hs-type">Maybe</span></a></span><span> </span><span class="annot"><a href="../../base/src/GHC.Base.html#String"><span class="hs-identifier hs-type">String</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-91"></span><span id="viCommandActions"><span class="annot"><span class="annottext">viCommandActions :: InputCmd CommandMode (Maybe String)
</span><a href="System.Console.Haskeline.Vi.html#viCommandActions"><span class="hs-identifier hs-var hs-var">viCommandActions</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">[KeyCommand (ViT m) CommandMode (Maybe String)]
-&gt; Command (ViT m) CommandMode (Maybe String)
forall (m :: * -&gt; *) s t. [KeyCommand m s t] -&gt; Command m s t
</span><a href="System.Console.Haskeline.Command.html#keyChoiceCmd"><span class="hs-identifier hs-var">keyChoiceCmd</span></a></span><span> </span><span class="hs-special">[</span><span>
</span><span id="line-92"></span><span>                    </span><span class="annot"><span class="annottext">Char -&gt; Key
</span><a href="System.Console.Haskeline.Key.html#simpleChar"><span class="hs-identifier hs-var">simpleChar</span></a></span><span> </span><span class="annot"><span class="annottext">Char
</span><span class="hs-char">'\n'</span></span><span> </span><span class="annot"><span class="annottext">Key
-&gt; Command (ViT m) CommandMode (Maybe String)
-&gt; KeyCommand (ViT m) CommandMode (Maybe String)
forall a. Key -&gt; a -&gt; KeyMap a
</span><a href="System.Console.Haskeline.Command.html#%2B%3E"><span class="hs-operator hs-var">+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">Command (ViT m) CommandMode (Maybe String)
forall (m :: * -&gt; *) s.
(Monad m, Result s) =&gt;
Command m s (Maybe String)
</span><a href="System.Console.Haskeline.Command.html#finish"><span class="hs-identifier hs-var">finish</span></a></span><span>
</span><span id="line-93"></span><span>                    </span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">Char -&gt; Key
</span><a href="System.Console.Haskeline.Key.html#ctrlChar"><span class="hs-identifier hs-var">ctrlChar</span></a></span><span> </span><span class="annot"><span class="annottext">Char
</span><span class="hs-char">'d'</span></span><span> </span><span class="annot"><span class="annottext">Key
-&gt; Command (ViT m) CommandMode (Maybe String)
-&gt; KeyCommand (ViT m) CommandMode (Maybe String)
forall a. Key -&gt; a -&gt; KeyMap a
</span><a href="System.Console.Haskeline.Command.html#%2B%3E"><span class="hs-operator hs-var">+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">Command (ViT m) CommandMode (Maybe String)
forall (m :: * -&gt; *) s.
(Monad m, Save s, Result s) =&gt;
Command m s (Maybe String)
</span><a href="System.Console.Haskeline.Vi.html#eofIfEmpty"><span class="hs-identifier hs-var">eofIfEmpty</span></a></span><span>
</span><span id="line-94"></span><span>                    </span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">KeyCommand (ViT m) CommandMode CommandMode
InputKeyCmd CommandMode CommandMode
</span><a href="System.Console.Haskeline.Vi.html#simpleCmdActions"><span class="hs-identifier hs-var">simpleCmdActions</span></a></span><span> </span><span class="annot"><span class="annottext">KeyCommand (ViT m) CommandMode CommandMode
-&gt; Command (ViT m) CommandMode (Maybe String)
-&gt; KeyCommand (ViT m) CommandMode (Maybe String)
forall (m :: * -&gt; *) s t u.
Monad m =&gt;
KeyCommand m s t -&gt; Command m t u -&gt; KeyCommand m s u
</span><a href="System.Console.Haskeline.Command.html#%3E%2B%3E"><span class="hs-operator hs-var">&gt;+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">Command (ViT m) CommandMode (Maybe String)
InputCmd CommandMode (Maybe String)
</span><a href="System.Console.Haskeline.Vi.html#viCommandActions"><span class="hs-identifier hs-var">viCommandActions</span></a></span><span>
</span><span id="line-95"></span><span>                    </span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">KeyCommand (ViT m) CommandMode InsertMode
InputKeyCmd CommandMode InsertMode
</span><a href="System.Console.Haskeline.Vi.html#exitingCommands"><span class="hs-identifier hs-var">exitingCommands</span></a></span><span> </span><span class="annot"><span class="annottext">KeyCommand (ViT m) CommandMode InsertMode
-&gt; Command (ViT m) InsertMode (Maybe String)
-&gt; KeyCommand (ViT m) CommandMode (Maybe String)
forall (m :: * -&gt; *) s t u.
Monad m =&gt;
KeyCommand m s t -&gt; Command m t u -&gt; KeyCommand m s u
</span><a href="System.Console.Haskeline.Command.html#%3E%2B%3E"><span class="hs-operator hs-var">&gt;+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">Command (ViT m) InsertMode (Maybe String)
InputCmd InsertMode (Maybe String)
</span><a href="System.Console.Haskeline.Vi.html#viCommands"><span class="hs-identifier hs-var">viCommands</span></a></span><span>
</span><span id="line-96"></span><span>                    </span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">KeyCommand (ViT m) CommandMode (Either CommandMode InsertMode)
InputKeyCmd CommandMode (Either CommandMode InsertMode)
</span><a href="System.Console.Haskeline.Vi.html#repeatedCommands"><span class="hs-identifier hs-var">repeatedCommands</span></a></span><span> </span><span class="annot"><span class="annottext">KeyCommand (ViT m) CommandMode (Either CommandMode InsertMode)
-&gt; Command (ViT m) (Either CommandMode InsertMode) (Maybe String)
-&gt; KeyCommand (ViT m) CommandMode (Maybe String)
forall (m :: * -&gt; *) s t u.
Monad m =&gt;
KeyCommand m s t -&gt; Command m t u -&gt; KeyCommand m s u
</span><a href="System.Console.Haskeline.Command.html#%3E%2B%3E"><span class="hs-operator hs-var">&gt;+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">Command (ViT m) (Either CommandMode InsertMode) (Maybe String)
InputCmd (Either CommandMode InsertMode) (Maybe String)
</span><a href="#local-6989586621679099091"><span class="hs-identifier hs-var">chooseEitherMode</span></a></span><span>
</span><span id="line-97"></span><span>                    </span><span class="hs-special">]</span><span>
</span><span id="line-98"></span><span>    </span><span class="hs-keyword">where</span><span>
</span><span id="line-99"></span><span>        </span><span class="annot"><a href="#local-6989586621679099091"><span class="hs-identifier hs-type">chooseEitherMode</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="System.Console.Haskeline.Vi.html#InputCmd"><span class="hs-identifier hs-type">InputCmd</span></a></span><span> </span><span class="annot"><a href="System.Console.Haskeline.Vi.html#EitherMode"><span class="hs-identifier hs-type">EitherMode</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="../../base/src/GHC.Maybe.html#Maybe"><span class="hs-identifier hs-type">Maybe</span></a></span><span> </span><span class="annot"><a href="../../base/src/GHC.Base.html#String"><span class="hs-identifier hs-type">String</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-100"></span><span>        </span><span id="local-6989586621679099091"><span class="annot"><span class="annottext">chooseEitherMode :: InputCmd (Either CommandMode InsertMode) (Maybe String)
</span><a href="#local-6989586621679099091"><span class="hs-identifier hs-var hs-var">chooseEitherMode</span></a></span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="../../base/src/Data.Either.html#Left"><span class="hs-identifier hs-type">Left</span></a></span><span> </span><span id="local-6989586621679099084"><span class="annot"><span class="annottext">CommandMode
</span><a href="#local-6989586621679099084"><span class="hs-identifier hs-var">cm</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Command (ViT m) CommandMode (Maybe String)
InputCmd CommandMode (Maybe String)
</span><a href="System.Console.Haskeline.Vi.html#viCommandActions"><span class="hs-identifier hs-var">viCommandActions</span></a></span><span> </span><span class="annot"><span class="annottext">CommandMode
</span><a href="#local-6989586621679099084"><span class="hs-identifier hs-var">cm</span></a></span><span>
</span><span id="line-101"></span><span>        </span><span class="annot"><a href="#local-6989586621679099091"><span class="hs-identifier hs-var">chooseEitherMode</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="../../base/src/Data.Either.html#Right"><span class="hs-identifier hs-type">Right</span></a></span><span> </span><span id="local-6989586621679099083"><span class="annot"><span class="annottext">InsertMode
</span><a href="#local-6989586621679099083"><span class="hs-identifier hs-var">im</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Command (ViT m) InsertMode (Maybe String)
InputCmd InsertMode (Maybe String)
</span><a href="System.Console.Haskeline.Vi.html#viCommands"><span class="hs-identifier hs-var">viCommands</span></a></span><span> </span><span class="annot"><span class="annottext">InsertMode
</span><a href="#local-6989586621679099083"><span class="hs-identifier hs-var">im</span></a></span><span>
</span><span id="line-102"></span><span>
</span><span id="line-103"></span><span class="annot"><a href="System.Console.Haskeline.Vi.html#exitingCommands"><span class="hs-identifier hs-type">exitingCommands</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="System.Console.Haskeline.Vi.html#InputKeyCmd"><span class="hs-identifier hs-type">InputKeyCmd</span></a></span><span> </span><span class="annot"><a href="System.Console.Haskeline.LineState.html#CommandMode"><span class="hs-identifier hs-type">CommandMode</span></a></span><span> </span><span class="annot"><a href="System.Console.Haskeline.LineState.html#InsertMode"><span class="hs-identifier hs-type">InsertMode</span></a></span><span>
</span><span id="line-104"></span><span id="exitingCommands"><span class="annot"><span class="annottext">exitingCommands :: InputKeyCmd CommandMode InsertMode
</span><a href="System.Console.Haskeline.Vi.html#exitingCommands"><span class="hs-identifier hs-var hs-var">exitingCommands</span></a></span></span><span> </span><span class="hs-glyph">=</span><span>  </span><span class="annot"><span class="annottext">[KeyMap (Command (ViT m) CommandMode InsertMode)]
-&gt; KeyMap (Command (ViT m) CommandMode InsertMode)
forall a. [KeyMap a] -&gt; KeyMap a
</span><a href="System.Console.Haskeline.Command.html#choiceCmd"><span class="hs-identifier hs-var">choiceCmd</span></a></span><span> </span><span class="hs-special">[</span><span> </span><span>
</span><span id="line-105"></span><span>                      </span><span class="annot"><span class="annottext">Char -&gt; Key
</span><a href="System.Console.Haskeline.Key.html#simpleChar"><span class="hs-identifier hs-var">simpleChar</span></a></span><span> </span><span class="annot"><span class="annottext">Char
</span><span class="hs-char">'i'</span></span><span> </span><span class="annot"><span class="annottext">Key
-&gt; Command (ViT m) CommandMode InsertMode
-&gt; KeyMap (Command (ViT m) CommandMode InsertMode)
forall a. Key -&gt; a -&gt; KeyMap a
</span><a href="System.Console.Haskeline.Command.html#%2B%3E"><span class="hs-operator hs-var">+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">(CommandMode -&gt; InsertMode)
-&gt; Command (ViT m) CommandMode InsertMode
forall t (m :: * -&gt; *) s.
(LineState t, Monad m) =&gt;
(s -&gt; t) -&gt; Command m s t
</span><a href="System.Console.Haskeline.Command.html#change"><span class="hs-identifier hs-var">change</span></a></span><span> </span><span class="annot"><span class="annottext">CommandMode -&gt; InsertMode
</span><a href="System.Console.Haskeline.LineState.html#insertFromCommandMode"><span class="hs-identifier hs-var">insertFromCommandMode</span></a></span><span>
</span><span id="line-106"></span><span>                    </span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">Char -&gt; Key
</span><a href="System.Console.Haskeline.Key.html#simpleChar"><span class="hs-identifier hs-var">simpleChar</span></a></span><span> </span><span class="annot"><span class="annottext">Char
</span><span class="hs-char">'I'</span></span><span> </span><span class="annot"><span class="annottext">Key
-&gt; Command (ViT m) CommandMode InsertMode
-&gt; KeyMap (Command (ViT m) CommandMode InsertMode)
forall a. Key -&gt; a -&gt; KeyMap a
</span><a href="System.Console.Haskeline.Command.html#%2B%3E"><span class="hs-operator hs-var">+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">(CommandMode -&gt; InsertMode)
-&gt; Command (ViT m) CommandMode InsertMode
forall t (m :: * -&gt; *) s.
(LineState t, Monad m) =&gt;
(s -&gt; t) -&gt; Command m s t
</span><a href="System.Console.Haskeline.Command.html#change"><span class="hs-identifier hs-var">change</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">InsertMode -&gt; InsertMode
forall s. Move s =&gt; s -&gt; s
</span><a href="System.Console.Haskeline.LineState.html#moveToStart"><span class="hs-identifier hs-var">moveToStart</span></a></span><span> </span><span class="annot"><span class="annottext">(InsertMode -&gt; InsertMode)
-&gt; (CommandMode -&gt; InsertMode) -&gt; CommandMode -&gt; InsertMode
forall b c a. (b -&gt; c) -&gt; (a -&gt; b) -&gt; a -&gt; c
</span><a href="../../base/src/GHC.Base.html#."><span class="hs-operator hs-var">.</span></a></span><span> </span><span class="annot"><span class="annottext">CommandMode -&gt; InsertMode
</span><a href="System.Console.Haskeline.LineState.html#insertFromCommandMode"><span class="hs-identifier hs-var">insertFromCommandMode</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-107"></span><span>                    </span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">BaseKey -&gt; Key
</span><a href="System.Console.Haskeline.Key.html#simpleKey"><span class="hs-identifier hs-var">simpleKey</span></a></span><span> </span><span class="annot"><span class="annottext">BaseKey
</span><a href="System.Console.Haskeline.Key.html#Home"><span class="hs-identifier hs-var">Home</span></a></span><span> </span><span class="annot"><span class="annottext">Key
-&gt; Command (ViT m) CommandMode InsertMode
-&gt; KeyMap (Command (ViT m) CommandMode InsertMode)
forall a. Key -&gt; a -&gt; KeyMap a
</span><a href="System.Console.Haskeline.Command.html#%2B%3E"><span class="hs-operator hs-var">+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">(CommandMode -&gt; InsertMode)
-&gt; Command (ViT m) CommandMode InsertMode
forall t (m :: * -&gt; *) s.
(LineState t, Monad m) =&gt;
(s -&gt; t) -&gt; Command m s t
</span><a href="System.Console.Haskeline.Command.html#change"><span class="hs-identifier hs-var">change</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">InsertMode -&gt; InsertMode
forall s. Move s =&gt; s -&gt; s
</span><a href="System.Console.Haskeline.LineState.html#moveToStart"><span class="hs-identifier hs-var">moveToStart</span></a></span><span> </span><span class="annot"><span class="annottext">(InsertMode -&gt; InsertMode)
-&gt; (CommandMode -&gt; InsertMode) -&gt; CommandMode -&gt; InsertMode
forall b c a. (b -&gt; c) -&gt; (a -&gt; b) -&gt; a -&gt; c
</span><a href="../../base/src/GHC.Base.html#."><span class="hs-operator hs-var">.</span></a></span><span> </span><span class="annot"><span class="annottext">CommandMode -&gt; InsertMode
</span><a href="System.Console.Haskeline.LineState.html#insertFromCommandMode"><span class="hs-identifier hs-var">insertFromCommandMode</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-108"></span><span>                    </span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">Char -&gt; Key
</span><a href="System.Console.Haskeline.Key.html#simpleChar"><span class="hs-identifier hs-var">simpleChar</span></a></span><span> </span><span class="annot"><span class="annottext">Char
</span><span class="hs-char">'a'</span></span><span> </span><span class="annot"><span class="annottext">Key
-&gt; Command (ViT m) CommandMode InsertMode
-&gt; KeyMap (Command (ViT m) CommandMode InsertMode)
forall a. Key -&gt; a -&gt; KeyMap a
</span><a href="System.Console.Haskeline.Command.html#%2B%3E"><span class="hs-operator hs-var">+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">(CommandMode -&gt; InsertMode)
-&gt; Command (ViT m) CommandMode InsertMode
forall t (m :: * -&gt; *) s.
(LineState t, Monad m) =&gt;
(s -&gt; t) -&gt; Command m s t
</span><a href="System.Console.Haskeline.Command.html#change"><span class="hs-identifier hs-var">change</span></a></span><span> </span><span class="annot"><span class="annottext">CommandMode -&gt; InsertMode
</span><a href="System.Console.Haskeline.LineState.html#appendFromCommandMode"><span class="hs-identifier hs-var">appendFromCommandMode</span></a></span><span>
</span><span id="line-109"></span><span>                    </span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">Char -&gt; Key
</span><a href="System.Console.Haskeline.Key.html#simpleChar"><span class="hs-identifier hs-var">simpleChar</span></a></span><span> </span><span class="annot"><span class="annottext">Char
</span><span class="hs-char">'A'</span></span><span> </span><span class="annot"><span class="annottext">Key
-&gt; Command (ViT m) CommandMode InsertMode
-&gt; KeyMap (Command (ViT m) CommandMode InsertMode)
forall a. Key -&gt; a -&gt; KeyMap a
</span><a href="System.Console.Haskeline.Command.html#%2B%3E"><span class="hs-operator hs-var">+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">(CommandMode -&gt; InsertMode)
-&gt; Command (ViT m) CommandMode InsertMode
forall t (m :: * -&gt; *) s.
(LineState t, Monad m) =&gt;
(s -&gt; t) -&gt; Command m s t
</span><a href="System.Console.Haskeline.Command.html#change"><span class="hs-identifier hs-var">change</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">InsertMode -&gt; InsertMode
forall s. Move s =&gt; s -&gt; s
</span><a href="System.Console.Haskeline.LineState.html#moveToEnd"><span class="hs-identifier hs-var">moveToEnd</span></a></span><span> </span><span class="annot"><span class="annottext">(InsertMode -&gt; InsertMode)
-&gt; (CommandMode -&gt; InsertMode) -&gt; CommandMode -&gt; InsertMode
forall b c a. (b -&gt; c) -&gt; (a -&gt; b) -&gt; a -&gt; c
</span><a href="../../base/src/GHC.Base.html#."><span class="hs-operator hs-var">.</span></a></span><span> </span><span class="annot"><span class="annottext">CommandMode -&gt; InsertMode
</span><a href="System.Console.Haskeline.LineState.html#appendFromCommandMode"><span class="hs-identifier hs-var">appendFromCommandMode</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-110"></span><span>                    </span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">BaseKey -&gt; Key
</span><a href="System.Console.Haskeline.Key.html#simpleKey"><span class="hs-identifier hs-var">simpleKey</span></a></span><span> </span><span class="annot"><span class="annottext">BaseKey
</span><a href="System.Console.Haskeline.Key.html#End"><span class="hs-identifier hs-var">End</span></a></span><span> </span><span class="annot"><span class="annottext">Key
-&gt; Command (ViT m) CommandMode InsertMode
-&gt; KeyMap (Command (ViT m) CommandMode InsertMode)
forall a. Key -&gt; a -&gt; KeyMap a
</span><a href="System.Console.Haskeline.Command.html#%2B%3E"><span class="hs-operator hs-var">+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">(CommandMode -&gt; InsertMode)
-&gt; Command (ViT m) CommandMode InsertMode
forall t (m :: * -&gt; *) s.
(LineState t, Monad m) =&gt;
(s -&gt; t) -&gt; Command m s t
</span><a href="System.Console.Haskeline.Command.html#change"><span class="hs-identifier hs-var">change</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">InsertMode -&gt; InsertMode
forall s. Move s =&gt; s -&gt; s
</span><a href="System.Console.Haskeline.LineState.html#moveToStart"><span class="hs-identifier hs-var">moveToStart</span></a></span><span>  </span><span class="annot"><span class="annottext">(InsertMode -&gt; InsertMode)
-&gt; (CommandMode -&gt; InsertMode) -&gt; CommandMode -&gt; InsertMode
forall b c a. (b -&gt; c) -&gt; (a -&gt; b) -&gt; a -&gt; c
</span><a href="../../base/src/GHC.Base.html#."><span class="hs-operator hs-var">.</span></a></span><span> </span><span class="annot"><span class="annottext">CommandMode -&gt; InsertMode
</span><a href="System.Console.Haskeline.LineState.html#insertFromCommandMode"><span class="hs-identifier hs-var">insertFromCommandMode</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-111"></span><span>                    </span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">Char -&gt; Key
</span><a href="System.Console.Haskeline.Key.html#simpleChar"><span class="hs-identifier hs-var">simpleChar</span></a></span><span> </span><span class="annot"><span class="annottext">Char
</span><span class="hs-char">'s'</span></span><span> </span><span class="annot"><span class="annottext">Key
-&gt; Command (ViT m) CommandMode InsertMode
-&gt; KeyMap (Command (ViT m) CommandMode InsertMode)
forall a. Key -&gt; a -&gt; KeyMap a
</span><a href="System.Console.Haskeline.Command.html#%2B%3E"><span class="hs-operator hs-var">+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">(CommandMode -&gt; InsertMode)
-&gt; Command (ViT m) CommandMode InsertMode
forall t (m :: * -&gt; *) s.
(LineState t, Monad m) =&gt;
(s -&gt; t) -&gt; Command m s t
</span><a href="System.Console.Haskeline.Command.html#change"><span class="hs-identifier hs-var">change</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">CommandMode -&gt; InsertMode
</span><a href="System.Console.Haskeline.LineState.html#insertFromCommandMode"><span class="hs-identifier hs-var">insertFromCommandMode</span></a></span><span> </span><span class="annot"><span class="annottext">(CommandMode -&gt; InsertMode)
-&gt; (CommandMode -&gt; CommandMode) -&gt; CommandMode -&gt; InsertMode
forall b c a. (b -&gt; c) -&gt; (a -&gt; b) -&gt; a -&gt; c
</span><a href="../../base/src/GHC.Base.html#."><span class="hs-operator hs-var">.</span></a></span><span> </span><span class="annot"><span class="annottext">CommandMode -&gt; CommandMode
</span><a href="System.Console.Haskeline.LineState.html#deleteChar"><span class="hs-identifier hs-var">deleteChar</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-112"></span><span>                    </span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">Char -&gt; Key
</span><a href="System.Console.Haskeline.Key.html#simpleChar"><span class="hs-identifier hs-var">simpleChar</span></a></span><span> </span><span class="annot"><span class="annottext">Char
</span><span class="hs-char">'S'</span></span><span> </span><span class="annot"><span class="annottext">Key
-&gt; Command (ViT m) CommandMode InsertMode
-&gt; KeyMap (Command (ViT m) CommandMode InsertMode)
forall a. Key -&gt; a -&gt; KeyMap a
</span><a href="System.Console.Haskeline.Command.html#%2B%3E"><span class="hs-operator hs-var">+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">Command (ViT m) CommandMode (ArgMode CommandMode)
forall (m :: * -&gt; *) s. Monad m =&gt; Command m s (ArgMode s)
</span><a href="System.Console.Haskeline.Vi.html#noArg"><span class="hs-identifier hs-var">noArg</span></a></span><span> </span><span class="annot"><span class="annottext">Command (ViT m) CommandMode (ArgMode CommandMode)
-&gt; Command (ViT m) (ArgMode CommandMode) InsertMode
-&gt; Command (ViT m) CommandMode InsertMode
forall (m :: * -&gt; *) s t u.
Monad m =&gt;
Command m s t -&gt; Command m t u -&gt; Command m s u
</span><a href="System.Console.Haskeline.Command.html#%3E%7C%3E"><span class="hs-operator hs-var">&gt;|&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">KillHelper -&gt; Command (ViT m) (ArgMode CommandMode) InsertMode
forall (m :: * -&gt; *).
MonadIO m =&gt;
KillHelper -&gt; Command (ViT m) (ArgMode CommandMode) InsertMode
</span><a href="System.Console.Haskeline.Vi.html#killAndStoreI"><span class="hs-identifier hs-var">killAndStoreI</span></a></span><span> </span><span class="annot"><span class="annottext">KillHelper
</span><a href="System.Console.Haskeline.Command.KillRing.html#killAll"><span class="hs-identifier hs-var">killAll</span></a></span><span>
</span><span id="line-113"></span><span>                    </span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">Char -&gt; Key
</span><a href="System.Console.Haskeline.Key.html#simpleChar"><span class="hs-identifier hs-var">simpleChar</span></a></span><span> </span><span class="annot"><span class="annottext">Char
</span><span class="hs-char">'C'</span></span><span> </span><span class="annot"><span class="annottext">Key
-&gt; Command (ViT m) CommandMode InsertMode
-&gt; KeyMap (Command (ViT m) CommandMode InsertMode)
forall a. Key -&gt; a -&gt; KeyMap a
</span><a href="System.Console.Haskeline.Command.html#%2B%3E"><span class="hs-operator hs-var">+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">Command (ViT m) CommandMode (ArgMode CommandMode)
forall (m :: * -&gt; *) s. Monad m =&gt; Command m s (ArgMode s)
</span><a href="System.Console.Haskeline.Vi.html#noArg"><span class="hs-identifier hs-var">noArg</span></a></span><span> </span><span class="annot"><span class="annottext">Command (ViT m) CommandMode (ArgMode CommandMode)
-&gt; Command (ViT m) (ArgMode CommandMode) InsertMode
-&gt; Command (ViT m) CommandMode InsertMode
forall (m :: * -&gt; *) s t u.
Monad m =&gt;
Command m s t -&gt; Command m t u -&gt; Command m s u
</span><a href="System.Console.Haskeline.Command.html#%3E%7C%3E"><span class="hs-operator hs-var">&gt;|&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">KillHelper -&gt; Command (ViT m) (ArgMode CommandMode) InsertMode
forall (m :: * -&gt; *).
MonadIO m =&gt;
KillHelper -&gt; Command (ViT m) (ArgMode CommandMode) InsertMode
</span><a href="System.Console.Haskeline.Vi.html#killAndStoreI"><span class="hs-identifier hs-var">killAndStoreI</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">(InsertMode -&gt; InsertMode) -&gt; KillHelper
</span><a href="System.Console.Haskeline.Command.KillRing.html#SimpleMove"><span class="hs-identifier hs-var">SimpleMove</span></a></span><span> </span><span class="annot"><span class="annottext">InsertMode -&gt; InsertMode
forall s. Move s =&gt; s -&gt; s
</span><a href="System.Console.Haskeline.LineState.html#moveToEnd"><span class="hs-identifier hs-var">moveToEnd</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-114"></span><span>                    </span><span class="hs-special">]</span><span>
</span><span id="line-115"></span><span>
</span><span id="line-116"></span><span class="annot"><a href="System.Console.Haskeline.Vi.html#simpleCmdActions"><span class="hs-identifier hs-type">simpleCmdActions</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="System.Console.Haskeline.Vi.html#InputKeyCmd"><span class="hs-identifier hs-type">InputKeyCmd</span></a></span><span> </span><span class="annot"><a href="System.Console.Haskeline.LineState.html#CommandMode"><span class="hs-identifier hs-type">CommandMode</span></a></span><span> </span><span class="annot"><a href="System.Console.Haskeline.LineState.html#CommandMode"><span class="hs-identifier hs-type">CommandMode</span></a></span><span>
</span><span id="line-117"></span><span id="simpleCmdActions"><span class="annot"><span class="annottext">simpleCmdActions :: InputKeyCmd CommandMode CommandMode
</span><a href="System.Console.Haskeline.Vi.html#simpleCmdActions"><span class="hs-identifier hs-var hs-var">simpleCmdActions</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">[KeyMap (Command (ViT m) CommandMode CommandMode)]
-&gt; KeyMap (Command (ViT m) CommandMode CommandMode)
forall a. [KeyMap a] -&gt; KeyMap a
</span><a href="System.Console.Haskeline.Command.html#choiceCmd"><span class="hs-identifier hs-var">choiceCmd</span></a></span><span> </span><span class="hs-special">[</span><span> </span><span>
</span><span id="line-118"></span><span>                    </span><span class="annot"><span class="annottext">Char -&gt; Key
</span><a href="System.Console.Haskeline.Key.html#simpleChar"><span class="hs-identifier hs-var">simpleChar</span></a></span><span> </span><span class="annot"><span class="annottext">Char
</span><span class="hs-char">'\ESC'</span></span><span> </span><span class="annot"><span class="annottext">Key
-&gt; Command (ViT m) CommandMode CommandMode
-&gt; KeyMap (Command (ViT m) CommandMode CommandMode)
forall a. Key -&gt; a -&gt; KeyMap a
</span><a href="System.Console.Haskeline.Command.html#%2B%3E"><span class="hs-operator hs-var">+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">(CommandMode -&gt; CommandMode)
-&gt; Command (ViT m) CommandMode CommandMode
forall t (m :: * -&gt; *) s.
(LineState t, Monad m) =&gt;
(s -&gt; t) -&gt; Command m s t
</span><a href="System.Console.Haskeline.Command.html#change"><span class="hs-identifier hs-var">change</span></a></span><span> </span><span class="annot"><span class="annottext">CommandMode -&gt; CommandMode
forall a. a -&gt; a
</span><a href="../../base/src/GHC.Base.html#id"><span class="hs-identifier hs-var">id</span></a></span><span> </span><span class="hs-comment">-- helps break out of loops</span><span>
</span><span id="line-119"></span><span>                    </span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">Char -&gt; Key
</span><a href="System.Console.Haskeline.Key.html#simpleChar"><span class="hs-identifier hs-var">simpleChar</span></a></span><span> </span><span class="annot"><span class="annottext">Char
</span><span class="hs-char">'r'</span></span><span>   </span><span class="annot"><span class="annottext">Key
-&gt; Command (ViT m) CommandMode CommandMode
-&gt; KeyMap (Command (ViT m) CommandMode CommandMode)
forall a. Key -&gt; a -&gt; KeyMap a
</span><a href="System.Console.Haskeline.Command.html#%2B%3E"><span class="hs-operator hs-var">+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">Command (ViT m) CommandMode CommandMode
InputCmd CommandMode CommandMode
</span><a href="System.Console.Haskeline.Vi.html#replaceOnce"><span class="hs-identifier hs-var">replaceOnce</span></a></span><span> </span><span>
</span><span id="line-120"></span><span>                    </span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">Char -&gt; Key
</span><a href="System.Console.Haskeline.Key.html#simpleChar"><span class="hs-identifier hs-var">simpleChar</span></a></span><span> </span><span class="annot"><span class="annottext">Char
</span><span class="hs-char">'R'</span></span><span>   </span><span class="annot"><span class="annottext">Key
-&gt; Command (ViT m) CommandMode CommandMode
-&gt; KeyMap (Command (ViT m) CommandMode CommandMode)
forall a. Key -&gt; a -&gt; KeyMap a
</span><a href="System.Console.Haskeline.Command.html#%2B%3E"><span class="hs-operator hs-var">+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">Command (ViT m) CommandMode CommandMode
InputCmd CommandMode CommandMode
</span><a href="System.Console.Haskeline.Vi.html#replaceLoop"><span class="hs-identifier hs-var">replaceLoop</span></a></span><span>
</span><span id="line-121"></span><span>                    </span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">Char -&gt; Key
</span><a href="System.Console.Haskeline.Key.html#simpleChar"><span class="hs-identifier hs-var">simpleChar</span></a></span><span> </span><span class="annot"><span class="annottext">Char
</span><span class="hs-char">'D'</span></span><span> </span><span class="annot"><span class="annottext">Key
-&gt; Command (ViT m) CommandMode CommandMode
-&gt; KeyMap (Command (ViT m) CommandMode CommandMode)
forall a. Key -&gt; a -&gt; KeyMap a
</span><a href="System.Console.Haskeline.Command.html#%2B%3E"><span class="hs-operator hs-var">+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">Command (ViT m) CommandMode (ArgMode CommandMode)
forall (m :: * -&gt; *) s. Monad m =&gt; Command m s (ArgMode s)
</span><a href="System.Console.Haskeline.Vi.html#noArg"><span class="hs-identifier hs-var">noArg</span></a></span><span> </span><span class="annot"><span class="annottext">Command (ViT m) CommandMode (ArgMode CommandMode)
-&gt; Command (ViT m) (ArgMode CommandMode) CommandMode
-&gt; Command (ViT m) CommandMode CommandMode
forall (m :: * -&gt; *) s t u.
Monad m =&gt;
Command m s t -&gt; Command m t u -&gt; Command m s u
</span><a href="System.Console.Haskeline.Command.html#%3E%7C%3E"><span class="hs-operator hs-var">&gt;|&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">KillHelper -&gt; Command (ViT m) (ArgMode CommandMode) CommandMode
forall (m :: * -&gt; *).
MonadIO m =&gt;
KillHelper -&gt; Command (ViT m) (ArgMode CommandMode) CommandMode
</span><a href="System.Console.Haskeline.Vi.html#killAndStoreCmd"><span class="hs-identifier hs-var">killAndStoreCmd</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">(InsertMode -&gt; InsertMode) -&gt; KillHelper
</span><a href="System.Console.Haskeline.Command.KillRing.html#SimpleMove"><span class="hs-identifier hs-var">SimpleMove</span></a></span><span> </span><span class="annot"><span class="annottext">InsertMode -&gt; InsertMode
forall s. Move s =&gt; s -&gt; s
</span><a href="System.Console.Haskeline.LineState.html#moveToEnd"><span class="hs-identifier hs-var">moveToEnd</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-122"></span><span>                    </span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">Char -&gt; Key
</span><a href="System.Console.Haskeline.Key.html#ctrlChar"><span class="hs-identifier hs-var">ctrlChar</span></a></span><span> </span><span class="annot"><span class="annottext">Char
</span><span class="hs-char">'l'</span></span><span> </span><span class="annot"><span class="annottext">Key
-&gt; Command (ViT m) CommandMode CommandMode
-&gt; KeyMap (Command (ViT m) CommandMode CommandMode)
forall a. Key -&gt; a -&gt; KeyMap a
</span><a href="System.Console.Haskeline.Command.html#%2B%3E"><span class="hs-operator hs-var">+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">Command (ViT m) CommandMode CommandMode
forall (m :: * -&gt; *) s. Command m s s
</span><a href="System.Console.Haskeline.Command.html#clearScreenCmd"><span class="hs-identifier hs-var">clearScreenCmd</span></a></span><span>
</span><span id="line-123"></span><span>                    </span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">Char -&gt; Key
</span><a href="System.Console.Haskeline.Key.html#simpleChar"><span class="hs-identifier hs-var">simpleChar</span></a></span><span> </span><span class="annot"><span class="annottext">Char
</span><span class="hs-char">'u'</span></span><span> </span><span class="annot"><span class="annottext">Key
-&gt; Command (ViT m) CommandMode CommandMode
-&gt; KeyMap (Command (ViT m) CommandMode CommandMode)
forall a. Key -&gt; a -&gt; KeyMap a
</span><a href="System.Console.Haskeline.Command.html#%2B%3E"><span class="hs-operator hs-var">+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">Command (ViT m) CommandMode CommandMode
forall (m :: * -&gt; *) s.
(MonadState Undo m, Save s) =&gt;
Command m s s
</span><a href="System.Console.Haskeline.Command.Undo.html#commandUndo"><span class="hs-identifier hs-var">commandUndo</span></a></span><span>
</span><span id="line-124"></span><span>                    </span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">Char -&gt; Key
</span><a href="System.Console.Haskeline.Key.html#ctrlChar"><span class="hs-identifier hs-var">ctrlChar</span></a></span><span> </span><span class="annot"><span class="annottext">Char
</span><span class="hs-char">'r'</span></span><span> </span><span class="annot"><span class="annottext">Key
-&gt; Command (ViT m) CommandMode CommandMode
-&gt; KeyMap (Command (ViT m) CommandMode CommandMode)
forall a. Key -&gt; a -&gt; KeyMap a
</span><a href="System.Console.Haskeline.Command.html#%2B%3E"><span class="hs-operator hs-var">+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">Command (ViT m) CommandMode CommandMode
forall (m :: * -&gt; *) s.
(MonadState Undo m, Save s) =&gt;
Command m s s
</span><a href="System.Console.Haskeline.Command.Undo.html#commandRedo"><span class="hs-identifier hs-var">commandRedo</span></a></span><span>
</span><span id="line-125"></span><span>                    </span><span class="hs-comment">-- vi-mode quirk: history is put at the start of the line.</span><span>
</span><span id="line-126"></span><span>                    </span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">Char -&gt; Key
</span><a href="System.Console.Haskeline.Key.html#simpleChar"><span class="hs-identifier hs-var">simpleChar</span></a></span><span> </span><span class="annot"><span class="annottext">Char
</span><span class="hs-char">'j'</span></span><span> </span><span class="annot"><span class="annottext">Key
-&gt; Command (ViT m) CommandMode CommandMode
-&gt; KeyMap (Command (ViT m) CommandMode CommandMode)
forall a. Key -&gt; a -&gt; KeyMap a
</span><a href="System.Console.Haskeline.Command.html#%2B%3E"><span class="hs-operator hs-var">+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">Command (ViT m) CommandMode CommandMode
forall s (m :: * -&gt; *).
(Save s, MonadState HistLog m) =&gt;
Command m s s
</span><a href="System.Console.Haskeline.Command.History.html#historyForward"><span class="hs-identifier hs-var">historyForward</span></a></span><span> </span><span class="annot"><span class="annottext">Command (ViT m) CommandMode CommandMode
-&gt; Command (ViT m) CommandMode CommandMode
-&gt; Command (ViT m) CommandMode CommandMode
forall (m :: * -&gt; *) s t u.
Monad m =&gt;
Command m s t -&gt; Command m t u -&gt; Command m s u
</span><a href="System.Console.Haskeline.Command.html#%3E%7C%3E"><span class="hs-operator hs-var">&gt;|&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">(CommandMode -&gt; CommandMode)
-&gt; Command (ViT m) CommandMode CommandMode
forall t (m :: * -&gt; *) s.
(LineState t, Monad m) =&gt;
(s -&gt; t) -&gt; Command m s t
</span><a href="System.Console.Haskeline.Command.html#change"><span class="hs-identifier hs-var">change</span></a></span><span> </span><span class="annot"><span class="annottext">CommandMode -&gt; CommandMode
forall s. Move s =&gt; s -&gt; s
</span><a href="System.Console.Haskeline.LineState.html#moveToStart"><span class="hs-identifier hs-var">moveToStart</span></a></span><span>
</span><span id="line-127"></span><span>                    </span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">Char -&gt; Key
</span><a href="System.Console.Haskeline.Key.html#simpleChar"><span class="hs-identifier hs-var">simpleChar</span></a></span><span> </span><span class="annot"><span class="annottext">Char
</span><span class="hs-char">'k'</span></span><span> </span><span class="annot"><span class="annottext">Key
-&gt; Command (ViT m) CommandMode CommandMode
-&gt; KeyMap (Command (ViT m) CommandMode CommandMode)
forall a. Key -&gt; a -&gt; KeyMap a
</span><a href="System.Console.Haskeline.Command.html#%2B%3E"><span class="hs-operator hs-var">+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">Command (ViT m) CommandMode CommandMode
forall s (m :: * -&gt; *).
(Save s, MonadState HistLog m) =&gt;
Command m s s
</span><a href="System.Console.Haskeline.Command.History.html#historyBack"><span class="hs-identifier hs-var">historyBack</span></a></span><span> </span><span class="annot"><span class="annottext">Command (ViT m) CommandMode CommandMode
-&gt; Command (ViT m) CommandMode CommandMode
-&gt; Command (ViT m) CommandMode CommandMode
forall (m :: * -&gt; *) s t u.
Monad m =&gt;
Command m s t -&gt; Command m t u -&gt; Command m s u
</span><a href="System.Console.Haskeline.Command.html#%3E%7C%3E"><span class="hs-operator hs-var">&gt;|&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">(CommandMode -&gt; CommandMode)
-&gt; Command (ViT m) CommandMode CommandMode
forall t (m :: * -&gt; *) s.
(LineState t, Monad m) =&gt;
(s -&gt; t) -&gt; Command m s t
</span><a href="System.Console.Haskeline.Command.html#change"><span class="hs-identifier hs-var">change</span></a></span><span> </span><span class="annot"><span class="annottext">CommandMode -&gt; CommandMode
forall s. Move s =&gt; s -&gt; s
</span><a href="System.Console.Haskeline.LineState.html#moveToStart"><span class="hs-identifier hs-var">moveToStart</span></a></span><span>
</span><span id="line-128"></span><span>                    </span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">BaseKey -&gt; Key
</span><a href="System.Console.Haskeline.Key.html#simpleKey"><span class="hs-identifier hs-var">simpleKey</span></a></span><span> </span><span class="annot"><span class="annottext">BaseKey
</span><a href="System.Console.Haskeline.Key.html#DownKey"><span class="hs-identifier hs-var">DownKey</span></a></span><span> </span><span class="annot"><span class="annottext">Key
-&gt; Command (ViT m) CommandMode CommandMode
-&gt; KeyMap (Command (ViT m) CommandMode CommandMode)
forall a. Key -&gt; a -&gt; KeyMap a
</span><a href="System.Console.Haskeline.Command.html#%2B%3E"><span class="hs-operator hs-var">+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">Command (ViT m) CommandMode CommandMode
forall s (m :: * -&gt; *).
(Save s, MonadState HistLog m) =&gt;
Command m s s
</span><a href="System.Console.Haskeline.Command.History.html#historyForward"><span class="hs-identifier hs-var">historyForward</span></a></span><span>  </span><span class="annot"><span class="annottext">Command (ViT m) CommandMode CommandMode
-&gt; Command (ViT m) CommandMode CommandMode
-&gt; Command (ViT m) CommandMode CommandMode
forall (m :: * -&gt; *) s t u.
Monad m =&gt;
Command m s t -&gt; Command m t u -&gt; Command m s u
</span><a href="System.Console.Haskeline.Command.html#%3E%7C%3E"><span class="hs-operator hs-var">&gt;|&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">(CommandMode -&gt; CommandMode)
-&gt; Command (ViT m) CommandMode CommandMode
forall t (m :: * -&gt; *) s.
(LineState t, Monad m) =&gt;
(s -&gt; t) -&gt; Command m s t
</span><a href="System.Console.Haskeline.Command.html#change"><span class="hs-identifier hs-var">change</span></a></span><span> </span><span class="annot"><span class="annottext">CommandMode -&gt; CommandMode
forall s. Move s =&gt; s -&gt; s
</span><a href="System.Console.Haskeline.LineState.html#moveToStart"><span class="hs-identifier hs-var">moveToStart</span></a></span><span>
</span><span id="line-129"></span><span>                    </span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">BaseKey -&gt; Key
</span><a href="System.Console.Haskeline.Key.html#simpleKey"><span class="hs-identifier hs-var">simpleKey</span></a></span><span> </span><span class="annot"><span class="annottext">BaseKey
</span><a href="System.Console.Haskeline.Key.html#UpKey"><span class="hs-identifier hs-var">UpKey</span></a></span><span> </span><span class="annot"><span class="annottext">Key
-&gt; Command (ViT m) CommandMode CommandMode
-&gt; KeyMap (Command (ViT m) CommandMode CommandMode)
forall a. Key -&gt; a -&gt; KeyMap a
</span><a href="System.Console.Haskeline.Command.html#%2B%3E"><span class="hs-operator hs-var">+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">Command (ViT m) CommandMode CommandMode
forall s (m :: * -&gt; *).
(Save s, MonadState HistLog m) =&gt;
Command m s s
</span><a href="System.Console.Haskeline.Command.History.html#historyBack"><span class="hs-identifier hs-var">historyBack</span></a></span><span> </span><span class="annot"><span class="annottext">Command (ViT m) CommandMode CommandMode
-&gt; Command (ViT m) CommandMode CommandMode
-&gt; Command (ViT m) CommandMode CommandMode
forall (m :: * -&gt; *) s t u.
Monad m =&gt;
Command m s t -&gt; Command m t u -&gt; Command m s u
</span><a href="System.Console.Haskeline.Command.html#%3E%7C%3E"><span class="hs-operator hs-var">&gt;|&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">(CommandMode -&gt; CommandMode)
-&gt; Command (ViT m) CommandMode CommandMode
forall t (m :: * -&gt; *) s.
(LineState t, Monad m) =&gt;
(s -&gt; t) -&gt; Command m s t
</span><a href="System.Console.Haskeline.Command.html#change"><span class="hs-identifier hs-var">change</span></a></span><span> </span><span class="annot"><span class="annottext">CommandMode -&gt; CommandMode
forall s. Move s =&gt; s -&gt; s
</span><a href="System.Console.Haskeline.LineState.html#moveToStart"><span class="hs-identifier hs-var">moveToStart</span></a></span><span>
</span><span id="line-130"></span><span>                    </span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">Char -&gt; Key
</span><a href="System.Console.Haskeline.Key.html#simpleChar"><span class="hs-identifier hs-var">simpleChar</span></a></span><span> </span><span class="annot"><span class="annottext">Char
</span><span class="hs-char">'/'</span></span><span> </span><span class="annot"><span class="annottext">Key
-&gt; Command (ViT m) CommandMode CommandMode
-&gt; KeyMap (Command (ViT m) CommandMode CommandMode)
forall a. Key -&gt; a -&gt; KeyMap a
</span><a href="System.Console.Haskeline.Command.html#%2B%3E"><span class="hs-operator hs-var">+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">Char -&gt; Direction -&gt; Command (ViT m) CommandMode CommandMode
forall (m :: * -&gt; *).
Monad m =&gt;
Char -&gt; Direction -&gt; Command (ViT m) CommandMode CommandMode
</span><a href="System.Console.Haskeline.Vi.html#viEnterSearch"><span class="hs-identifier hs-var">viEnterSearch</span></a></span><span> </span><span class="annot"><span class="annottext">Char
</span><span class="hs-char">'/'</span></span><span> </span><span class="annot"><span class="annottext">Direction
</span><a href="System.Console.Haskeline.Command.History.html#Reverse"><span class="hs-identifier hs-var">Reverse</span></a></span><span>
</span><span id="line-131"></span><span>                    </span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">Char -&gt; Key
</span><a href="System.Console.Haskeline.Key.html#simpleChar"><span class="hs-identifier hs-var">simpleChar</span></a></span><span> </span><span class="annot"><span class="annottext">Char
</span><span class="hs-char">'?'</span></span><span> </span><span class="annot"><span class="annottext">Key
-&gt; Command (ViT m) CommandMode CommandMode
-&gt; KeyMap (Command (ViT m) CommandMode CommandMode)
forall a. Key -&gt; a -&gt; KeyMap a
</span><a href="System.Console.Haskeline.Command.html#%2B%3E"><span class="hs-operator hs-var">+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">Char -&gt; Direction -&gt; Command (ViT m) CommandMode CommandMode
forall (m :: * -&gt; *).
Monad m =&gt;
Char -&gt; Direction -&gt; Command (ViT m) CommandMode CommandMode
</span><a href="System.Console.Haskeline.Vi.html#viEnterSearch"><span class="hs-identifier hs-var">viEnterSearch</span></a></span><span> </span><span class="annot"><span class="annottext">Char
</span><span class="hs-char">'?'</span></span><span> </span><span class="annot"><span class="annottext">Direction
</span><a href="System.Console.Haskeline.Command.History.html#Forward"><span class="hs-identifier hs-var">Forward</span></a></span><span>
</span><span id="line-132"></span><span>                    </span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">Char -&gt; Key
</span><a href="System.Console.Haskeline.Key.html#simpleChar"><span class="hs-identifier hs-var">simpleChar</span></a></span><span> </span><span class="annot"><span class="annottext">Char
</span><span class="hs-char">'n'</span></span><span> </span><span class="annot"><span class="annottext">Key
-&gt; Command (ViT m) CommandMode CommandMode
-&gt; KeyMap (Command (ViT m) CommandMode CommandMode)
forall a. Key -&gt; a -&gt; KeyMap a
</span><a href="System.Console.Haskeline.Command.html#%2B%3E"><span class="hs-operator hs-var">+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">Direction -&gt; [Grapheme] -&gt; Command (ViT m) CommandMode CommandMode
forall (m :: * -&gt; *).
Monad m =&gt;
Direction -&gt; [Grapheme] -&gt; Command (ViT m) CommandMode CommandMode
</span><a href="System.Console.Haskeline.Vi.html#viSearchHist"><span class="hs-identifier hs-var">viSearchHist</span></a></span><span> </span><span class="annot"><span class="annottext">Direction
</span><a href="System.Console.Haskeline.Command.History.html#Reverse"><span class="hs-identifier hs-var">Reverse</span></a></span><span> </span><span class="hs-special">[</span><span class="hs-special">]</span><span>
</span><span id="line-133"></span><span>                    </span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">Char -&gt; Key
</span><a href="System.Console.Haskeline.Key.html#simpleChar"><span class="hs-identifier hs-var">simpleChar</span></a></span><span> </span><span class="annot"><span class="annottext">Char
</span><span class="hs-char">'N'</span></span><span> </span><span class="annot"><span class="annottext">Key
-&gt; Command (ViT m) CommandMode CommandMode
-&gt; KeyMap (Command (ViT m) CommandMode CommandMode)
forall a. Key -&gt; a -&gt; KeyMap a
</span><a href="System.Console.Haskeline.Command.html#%2B%3E"><span class="hs-operator hs-var">+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">Direction -&gt; [Grapheme] -&gt; Command (ViT m) CommandMode CommandMode
forall (m :: * -&gt; *).
Monad m =&gt;
Direction -&gt; [Grapheme] -&gt; Command (ViT m) CommandMode CommandMode
</span><a href="System.Console.Haskeline.Vi.html#viSearchHist"><span class="hs-identifier hs-var">viSearchHist</span></a></span><span> </span><span class="annot"><span class="annottext">Direction
</span><a href="System.Console.Haskeline.Command.History.html#Forward"><span class="hs-identifier hs-var">Forward</span></a></span><span> </span><span class="hs-special">[</span><span class="hs-special">]</span><span>
</span><span id="line-134"></span><span>                    </span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">BaseKey -&gt; Key
</span><a href="System.Console.Haskeline.Key.html#simpleKey"><span class="hs-identifier hs-var">simpleKey</span></a></span><span> </span><span class="annot"><span class="annottext">BaseKey
</span><a href="System.Console.Haskeline.Key.html#KillLine"><span class="hs-identifier hs-var">KillLine</span></a></span><span> </span><span class="annot"><span class="annottext">Key
-&gt; Command (ViT m) CommandMode CommandMode
-&gt; KeyMap (Command (ViT m) CommandMode CommandMode)
forall a. Key -&gt; a -&gt; KeyMap a
</span><a href="System.Console.Haskeline.Command.html#%2B%3E"><span class="hs-operator hs-var">+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">Command (ViT m) CommandMode (ArgMode CommandMode)
forall (m :: * -&gt; *) s. Monad m =&gt; Command m s (ArgMode s)
</span><a href="System.Console.Haskeline.Vi.html#noArg"><span class="hs-identifier hs-var">noArg</span></a></span><span> </span><span class="annot"><span class="annottext">Command (ViT m) CommandMode (ArgMode CommandMode)
-&gt; Command (ViT m) (ArgMode CommandMode) CommandMode
-&gt; Command (ViT m) CommandMode CommandMode
forall (m :: * -&gt; *) s t u.
Monad m =&gt;
Command m s t -&gt; Command m t u -&gt; Command m s u
</span><a href="System.Console.Haskeline.Command.html#%3E%7C%3E"><span class="hs-operator hs-var">&gt;|&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">KillHelper -&gt; Command (ViT m) (ArgMode CommandMode) CommandMode
forall (m :: * -&gt; *).
MonadIO m =&gt;
KillHelper -&gt; Command (ViT m) (ArgMode CommandMode) CommandMode
</span><a href="System.Console.Haskeline.Vi.html#killAndStoreCmd"><span class="hs-identifier hs-var">killAndStoreCmd</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">(InsertMode -&gt; InsertMode) -&gt; KillHelper
</span><a href="System.Console.Haskeline.Command.KillRing.html#SimpleMove"><span class="hs-identifier hs-var">SimpleMove</span></a></span><span> </span><span class="annot"><span class="annottext">InsertMode -&gt; InsertMode
forall s. Move s =&gt; s -&gt; s
</span><a href="System.Console.Haskeline.LineState.html#moveToStart"><span class="hs-identifier hs-var">moveToStart</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-135"></span><span>                    </span><span class="hs-special">]</span><span>
</span><span id="line-136"></span><span>
</span><span id="line-137"></span><span class="annot"><a href="System.Console.Haskeline.Vi.html#replaceOnce"><span class="hs-identifier hs-type">replaceOnce</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="System.Console.Haskeline.Vi.html#InputCmd"><span class="hs-identifier hs-type">InputCmd</span></a></span><span> </span><span class="annot"><a href="System.Console.Haskeline.LineState.html#CommandMode"><span class="hs-identifier hs-type">CommandMode</span></a></span><span> </span><span class="annot"><a href="System.Console.Haskeline.LineState.html#CommandMode"><span class="hs-identifier hs-type">CommandMode</span></a></span><span>
</span><span id="line-138"></span><span id="replaceOnce"><span class="annot"><span class="annottext">replaceOnce :: InputCmd CommandMode CommandMode
</span><a href="System.Console.Haskeline.Vi.html#replaceOnce"><span class="hs-identifier hs-var hs-var">replaceOnce</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">KeyCommand (ViT m) CommandMode CommandMode
-&gt; Command (ViT m) CommandMode CommandMode
forall (m :: * -&gt; *) s.
Monad m =&gt;
KeyCommand m s s -&gt; Command m s s
</span><a href="System.Console.Haskeline.Command.html#try"><span class="hs-identifier hs-var">try</span></a></span><span> </span><span class="annot"><span class="annottext">(KeyCommand (ViT m) CommandMode CommandMode
 -&gt; Command (ViT m) CommandMode CommandMode)
-&gt; KeyCommand (ViT m) CommandMode CommandMode
-&gt; Command (ViT m) CommandMode CommandMode
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="annot"><span class="annottext">(Char -&gt; CommandMode -&gt; CommandMode)
-&gt; KeyCommand (ViT m) CommandMode CommandMode
forall t (m :: * -&gt; *) s.
(LineState t, Monad m) =&gt;
(Char -&gt; s -&gt; t) -&gt; KeyCommand m s t
</span><a href="System.Console.Haskeline.Command.html#changeFromChar"><span class="hs-identifier hs-var">changeFromChar</span></a></span><span> </span><span class="annot"><span class="annottext">Char -&gt; CommandMode -&gt; CommandMode
</span><a href="System.Console.Haskeline.LineState.html#replaceChar"><span class="hs-identifier hs-var">replaceChar</span></a></span><span>
</span><span id="line-139"></span><span>
</span><span id="line-140"></span><span class="annot"><a href="System.Console.Haskeline.Vi.html#repeatedCommands"><span class="hs-identifier hs-type">repeatedCommands</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="System.Console.Haskeline.Vi.html#InputKeyCmd"><span class="hs-identifier hs-type">InputKeyCmd</span></a></span><span> </span><span class="annot"><a href="System.Console.Haskeline.LineState.html#CommandMode"><span class="hs-identifier hs-type">CommandMode</span></a></span><span> </span><span class="annot"><a href="System.Console.Haskeline.Vi.html#EitherMode"><span class="hs-identifier hs-type">EitherMode</span></a></span><span>
</span><span id="line-141"></span><span id="repeatedCommands"><span class="annot"><span class="annottext">repeatedCommands :: InputKeyCmd CommandMode (Either CommandMode InsertMode)
</span><a href="System.Console.Haskeline.Vi.html#repeatedCommands"><span class="hs-identifier hs-var hs-var">repeatedCommands</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">[KeyMap
   (Command (ViT m) CommandMode (Either CommandMode InsertMode))]
-&gt; KeyMap
     (Command (ViT m) CommandMode (Either CommandMode InsertMode))
forall a. [KeyMap a] -&gt; KeyMap a
</span><a href="System.Console.Haskeline.Command.html#choiceCmd"><span class="hs-identifier hs-var">choiceCmd</span></a></span><span> </span><span class="hs-special">[</span><span class="annot"><span class="annottext">KeyMap
  (Command (ViT m) CommandMode (Either CommandMode InsertMode))
</span><a href="#local-6989586621679098942"><span class="hs-identifier hs-var">argumented</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">Command (ViT m) CommandMode (ArgMode CommandMode)
-&gt; KeyCommand
     (ViT m) (ArgMode CommandMode) (Either CommandMode InsertMode)
-&gt; KeyMap
     (Command (ViT m) CommandMode (Either CommandMode InsertMode))
forall (m :: * -&gt; *) s t u.
Monad m =&gt;
Command m s t -&gt; KeyCommand m t u -&gt; KeyCommand m s u
</span><a href="System.Console.Haskeline.Command.html#doBefore"><span class="hs-identifier hs-var">doBefore</span></a></span><span> </span><span class="annot"><span class="annottext">Command (ViT m) CommandMode (ArgMode CommandMode)
forall (m :: * -&gt; *) s. Monad m =&gt; Command m s (ArgMode s)
</span><a href="System.Console.Haskeline.Vi.html#noArg"><span class="hs-identifier hs-var">noArg</span></a></span><span> </span><span class="annot"><span class="annottext">KeyCommand
  (ViT m) (ArgMode CommandMode) (Either CommandMode InsertMode)
InputKeyCmd (ArgMode CommandMode) (Either CommandMode InsertMode)
</span><a href="System.Console.Haskeline.Vi.html#repeatableCommands"><span class="hs-identifier hs-var">repeatableCommands</span></a></span><span class="hs-special">]</span><span>
</span><span id="line-142"></span><span>    </span><span class="hs-keyword">where</span><span>
</span><span id="line-143"></span><span>        </span><span id="local-6989586621679098933"><span class="annot"><span class="annottext">start :: KeyCommand (ViT m) CommandMode (ArgMode CommandMode)
</span><a href="#local-6989586621679098933"><span class="hs-identifier hs-var hs-var">start</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">(Int -&gt; CommandMode -&gt; ArgMode CommandMode)
-&gt; String -&gt; KeyCommand (ViT m) CommandMode (ArgMode CommandMode)
forall (m :: * -&gt; *) t s.
(Monad m, LineState t) =&gt;
(Int -&gt; s -&gt; t) -&gt; String -&gt; KeyCommand m s t
</span><a href="System.Console.Haskeline.Vi.html#foreachDigit"><span class="hs-identifier hs-var">foreachDigit</span></a></span><span> </span><span class="annot"><span class="annottext">Int -&gt; CommandMode -&gt; ArgMode CommandMode
forall s. Int -&gt; s -&gt; ArgMode s
</span><a href="System.Console.Haskeline.LineState.html#startArg"><span class="hs-identifier hs-var">startArg</span></a></span><span> </span><span class="hs-special">[</span><span class="annot"><span class="annottext">Char
</span><span class="hs-char">'1'</span></span><span class="hs-glyph">..</span><span class="annot"><span class="annottext">Char
</span><span class="hs-char">'9'</span></span><span class="hs-special">]</span><span>
</span><span id="line-144"></span><span>        </span><span id="local-6989586621679098926"><span class="annot"><span class="annottext">addDigit :: KeyCommand (ViT m) (ArgMode CommandMode) (ArgMode CommandMode)
</span><a href="#local-6989586621679098926"><span class="hs-identifier hs-var hs-var">addDigit</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">(Int -&gt; ArgMode CommandMode -&gt; ArgMode CommandMode)
-&gt; String
-&gt; KeyCommand (ViT m) (ArgMode CommandMode) (ArgMode CommandMode)
forall (m :: * -&gt; *) t s.
(Monad m, LineState t) =&gt;
(Int -&gt; s -&gt; t) -&gt; String -&gt; KeyCommand m s t
</span><a href="System.Console.Haskeline.Vi.html#foreachDigit"><span class="hs-identifier hs-var">foreachDigit</span></a></span><span> </span><span class="annot"><span class="annottext">Int -&gt; ArgMode CommandMode -&gt; ArgMode CommandMode
forall s. Int -&gt; ArgMode s -&gt; ArgMode s
</span><a href="System.Console.Haskeline.LineState.html#addNum"><span class="hs-identifier hs-var">addNum</span></a></span><span> </span><span class="hs-special">[</span><span class="annot"><span class="annottext">Char
</span><span class="hs-char">'0'</span></span><span class="hs-glyph">..</span><span class="annot"><span class="annottext">Char
</span><span class="hs-char">'9'</span></span><span class="hs-special">]</span><span>
</span><span id="line-145"></span><span>        </span><span id="local-6989586621679098942"><span class="annot"><span class="annottext">argumented :: KeyMap
  (Command (ViT m) CommandMode (Either CommandMode InsertMode))
</span><a href="#local-6989586621679098942"><span class="hs-identifier hs-var hs-var">argumented</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">KeyCommand (ViT m) CommandMode (ArgMode CommandMode)
</span><a href="#local-6989586621679098933"><span class="hs-identifier hs-var">start</span></a></span><span> </span><span class="annot"><span class="annottext">KeyCommand (ViT m) CommandMode (ArgMode CommandMode)
-&gt; Command
     (ViT m) (ArgMode CommandMode) (Either CommandMode InsertMode)
-&gt; KeyMap
     (Command (ViT m) CommandMode (Either CommandMode InsertMode))
forall (m :: * -&gt; *) s t u.
Monad m =&gt;
KeyCommand m s t -&gt; Command m t u -&gt; KeyCommand m s u
</span><a href="System.Console.Haskeline.Command.html#%3E%2B%3E"><span class="hs-operator hs-var">&gt;+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">Command
  (ViT m) (ArgMode CommandMode) (Either CommandMode InsertMode)
</span><a href="#local-6989586621679098923"><span class="hs-identifier hs-var">loop</span></a></span><span>
</span><span id="line-146"></span><span>        </span><span id="local-6989586621679098923"><span class="annot"><span class="annottext">loop :: Command
  (ViT m) (ArgMode CommandMode) (Either CommandMode InsertMode)
</span><a href="#local-6989586621679098923"><span class="hs-identifier hs-var hs-var">loop</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">[KeyCommand
   (ViT m) (ArgMode CommandMode) (Either CommandMode InsertMode)]
-&gt; Command
     (ViT m) (ArgMode CommandMode) (Either CommandMode InsertMode)
forall (m :: * -&gt; *) s t. [KeyCommand m s t] -&gt; Command m s t
</span><a href="System.Console.Haskeline.Command.html#keyChoiceCmd"><span class="hs-identifier hs-var">keyChoiceCmd</span></a></span><span> </span><span class="hs-special">[</span><span class="annot"><span class="annottext">KeyCommand (ViT m) (ArgMode CommandMode) (ArgMode CommandMode)
</span><a href="#local-6989586621679098926"><span class="hs-identifier hs-var">addDigit</span></a></span><span> </span><span class="annot"><span class="annottext">KeyCommand (ViT m) (ArgMode CommandMode) (ArgMode CommandMode)
-&gt; Command
     (ViT m) (ArgMode CommandMode) (Either CommandMode InsertMode)
-&gt; KeyCommand
     (ViT m) (ArgMode CommandMode) (Either CommandMode InsertMode)
forall (m :: * -&gt; *) s t u.
Monad m =&gt;
KeyCommand m s t -&gt; Command m t u -&gt; KeyCommand m s u
</span><a href="System.Console.Haskeline.Command.html#%3E%2B%3E"><span class="hs-operator hs-var">&gt;+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">Command
  (ViT m) (ArgMode CommandMode) (Either CommandMode InsertMode)
</span><a href="#local-6989586621679098923"><span class="hs-identifier hs-var">loop</span></a></span><span>
</span><span id="line-147"></span><span>                            </span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">KeyCommand
  (ViT m) (ArgMode CommandMode) (Either CommandMode InsertMode)
InputKeyCmd (ArgMode CommandMode) (Either CommandMode InsertMode)
</span><a href="System.Console.Haskeline.Vi.html#repeatableCommands"><span class="hs-identifier hs-var">repeatableCommands</span></a></span><span>
</span><span id="line-148"></span><span>                            </span><span class="hs-comment">-- if no match, bail out.</span><span>
</span><span id="line-149"></span><span>                            </span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">Command (ViT m) (ArgMode CommandMode) CommandMode
-&gt; KeyCommand (ViT m) (ArgMode CommandMode) CommandMode
forall (m :: * -&gt; *) s t. Command m s t -&gt; KeyCommand m s t
</span><a href="System.Console.Haskeline.Command.html#withoutConsuming"><span class="hs-identifier hs-var">withoutConsuming</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">(ArgMode CommandMode -&gt; CommandMode)
-&gt; Command (ViT m) (ArgMode CommandMode) CommandMode
forall t (m :: * -&gt; *) s.
(LineState t, Monad m) =&gt;
(s -&gt; t) -&gt; Command m s t
</span><a href="System.Console.Haskeline.Command.html#change"><span class="hs-identifier hs-var">change</span></a></span><span> </span><span class="annot"><span class="annottext">ArgMode CommandMode -&gt; CommandMode
forall s. ArgMode s -&gt; s
</span><a href="System.Console.Haskeline.LineState.html#argState"><span class="hs-identifier hs-var hs-var">argState</span></a></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">KeyCommand (ViT m) (ArgMode CommandMode) CommandMode
-&gt; Command (ViT m) CommandMode (Either CommandMode InsertMode)
-&gt; KeyCommand
     (ViT m) (ArgMode CommandMode) (Either CommandMode InsertMode)
forall (m :: * -&gt; *) s t u.
Monad m =&gt;
KeyCommand m s t -&gt; Command m t u -&gt; KeyCommand m s u
</span><a href="System.Console.Haskeline.Command.html#%3E%2B%3E"><span class="hs-operator hs-var">&gt;+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">Either CommandMode InsertMode
-&gt; CmdM (ViT m) (Either CommandMode InsertMode)
forall (m :: * -&gt; *) a. Monad m =&gt; a -&gt; m a
</span><a href="../../base/src/GHC.Base.html#return"><span class="hs-identifier hs-var">return</span></a></span><span> </span><span class="annot"><span class="annottext">(Either CommandMode InsertMode
 -&gt; CmdM (ViT m) (Either CommandMode InsertMode))
-&gt; (CommandMode -&gt; Either CommandMode InsertMode)
-&gt; Command (ViT m) CommandMode (Either CommandMode InsertMode)
forall b c a. (b -&gt; c) -&gt; (a -&gt; b) -&gt; a -&gt; c
</span><a href="../../base/src/GHC.Base.html#."><span class="hs-operator hs-var">.</span></a></span><span> </span><span class="annot"><span class="annottext">CommandMode -&gt; Either CommandMode InsertMode
forall a b. a -&gt; Either a b
</span><a href="../../base/src/Data.Either.html#Left"><span class="hs-identifier hs-var">Left</span></a></span><span>
</span><span id="line-150"></span><span>                            </span><span class="hs-special">]</span><span>
</span><span id="line-151"></span><span>
</span><span id="line-152"></span><span class="annot"><a href="System.Console.Haskeline.Vi.html#pureMovements"><span class="hs-identifier hs-type">pureMovements</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="System.Console.Haskeline.Vi.html#InputKeyCmd"><span class="hs-identifier hs-type">InputKeyCmd</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="System.Console.Haskeline.LineState.html#ArgMode"><span class="hs-identifier hs-type">ArgMode</span></a></span><span> </span><span class="annot"><a href="System.Console.Haskeline.LineState.html#CommandMode"><span class="hs-identifier hs-type">CommandMode</span></a></span><span class="hs-special">)</span><span> </span><span class="annot"><a href="System.Console.Haskeline.LineState.html#CommandMode"><span class="hs-identifier hs-type">CommandMode</span></a></span><span>
</span><span id="line-153"></span><span id="pureMovements"><span class="annot"><span class="annottext">pureMovements :: InputKeyCmd (ArgMode CommandMode) CommandMode
</span><a href="System.Console.Haskeline.Vi.html#pureMovements"><span class="hs-identifier hs-var hs-var">pureMovements</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">[KeyMap (Command (ViT m) (ArgMode CommandMode) CommandMode)]
-&gt; KeyMap (Command (ViT m) (ArgMode CommandMode) CommandMode)
forall a. [KeyMap a] -&gt; KeyMap a
</span><a href="System.Console.Haskeline.Command.html#choiceCmd"><span class="hs-identifier hs-var">choiceCmd</span></a></span><span> </span><span class="annot"><span class="annottext">([KeyMap (Command (ViT m) (ArgMode CommandMode) CommandMode)]
 -&gt; KeyMap (Command (ViT m) (ArgMode CommandMode) CommandMode))
-&gt; [KeyMap (Command (ViT m) (ArgMode CommandMode) CommandMode)]
-&gt; KeyMap (Command (ViT m) (ArgMode CommandMode) CommandMode)
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="annot"><span class="annottext">[KeyMap (Command (ViT m) (ArgMode CommandMode) CommandMode)]
</span><a href="#local-6989586621679098904"><span class="hs-identifier hs-var">charMovements</span></a></span><span> </span><span class="annot"><span class="annottext">[KeyMap (Command (ViT m) (ArgMode CommandMode) CommandMode)]
-&gt; [KeyMap (Command (ViT m) (ArgMode CommandMode) CommandMode)]
-&gt; [KeyMap (Command (ViT m) (ArgMode CommandMode) CommandMode)]
forall a. [a] -&gt; [a] -&gt; [a]
</span><a href="../../base/src/GHC.Base.html#%2B%2B"><span class="hs-operator hs-var">++</span></a></span><span> </span><span class="annot"><span class="annottext">((Key, InsertMode -&gt; InsertMode)
 -&gt; KeyMap (Command (ViT m) (ArgMode CommandMode) CommandMode))
-&gt; [(Key, InsertMode -&gt; InsertMode)]
-&gt; [KeyMap (Command (ViT m) (ArgMode CommandMode) CommandMode)]
forall a b. (a -&gt; b) -&gt; [a] -&gt; [b]
</span><a href="../../base/src/GHC.Base.html#map"><span class="hs-identifier hs-var">map</span></a></span><span> </span><span class="annot"><span class="annottext">(Key, InsertMode -&gt; InsertMode)
-&gt; KeyMap (Command (ViT m) (ArgMode CommandMode) CommandMode)
forall {m :: * -&gt; *}.
Monad m =&gt;
(Key, InsertMode -&gt; InsertMode)
-&gt; KeyMap (Command m (ArgMode CommandMode) CommandMode)
</span><a href="#local-6989586621679098903"><span class="hs-identifier hs-var">mkSimpleCommand</span></a></span><span> </span><span class="annot"><span class="annottext">[(Key, InsertMode -&gt; InsertMode)]
</span><a href="System.Console.Haskeline.Vi.html#movements"><span class="hs-identifier hs-var">movements</span></a></span><span>
</span><span id="line-154"></span><span>    </span><span class="hs-keyword">where</span><span>
</span><span id="line-155"></span><span>        </span><span id="local-6989586621679098904"><span class="annot"><span class="annottext">charMovements :: [KeyMap (Command (ViT m) (ArgMode CommandMode) CommandMode)]
</span><a href="#local-6989586621679098904"><span class="hs-identifier hs-var hs-var">charMovements</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="hs-special">[</span><span> </span><span class="annot"><span class="annottext">Char
-&gt; (Char -&gt; InsertMode -&gt; InsertMode)
-&gt; KeyMap (Command (ViT m) (ArgMode CommandMode) CommandMode)
forall {m :: * -&gt; *}.
Monad m =&gt;
Char
-&gt; (Char -&gt; InsertMode -&gt; InsertMode)
-&gt; KeyMap (Command m (ArgMode CommandMode) CommandMode)
</span><a href="#local-6989586621679098893"><span class="hs-identifier hs-var">charMovement</span></a></span><span> </span><span class="annot"><span class="annottext">Char
</span><span class="hs-char">'f'</span></span><span> </span><span class="annot"><span class="annottext">((Char -&gt; InsertMode -&gt; InsertMode)
 -&gt; KeyMap (Command (ViT m) (ArgMode CommandMode) CommandMode))
-&gt; (Char -&gt; InsertMode -&gt; InsertMode)
-&gt; KeyMap (Command (ViT m) (ArgMode CommandMode) CommandMode)
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="hs-glyph">\</span><span id="local-6989586621679098892"><span class="annot"><span class="annottext">Char
</span><a href="#local-6989586621679098892"><span class="hs-identifier hs-var">c</span></a></span></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">(InsertMode -&gt; Bool) -&gt; InsertMode -&gt; InsertMode
</span><a href="System.Console.Haskeline.LineState.html#goRightUntil"><span class="hs-identifier hs-var">goRightUntil</span></a></span><span> </span><span class="annot"><span class="annottext">((InsertMode -&gt; Bool) -&gt; InsertMode -&gt; InsertMode)
-&gt; (InsertMode -&gt; Bool) -&gt; InsertMode -&gt; InsertMode
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="annot"><span class="annottext">(Char -&gt; Bool) -&gt; InsertMode -&gt; Bool
</span><a href="System.Console.Haskeline.LineState.html#overChar"><span class="hs-identifier hs-var">overChar</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Char -&gt; Char -&gt; Bool
forall a. Eq a =&gt; a -&gt; a -&gt; Bool
</span><span class="hs-operator hs-var">==</span></span><span class="annot"><span class="annottext">Char
</span><a href="#local-6989586621679098892"><span class="hs-identifier hs-var">c</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-156"></span><span>                        </span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">Char
-&gt; (Char -&gt; InsertMode -&gt; InsertMode)
-&gt; KeyMap (Command (ViT m) (ArgMode CommandMode) CommandMode)
forall {m :: * -&gt; *}.
Monad m =&gt;
Char
-&gt; (Char -&gt; InsertMode -&gt; InsertMode)
-&gt; KeyMap (Command m (ArgMode CommandMode) CommandMode)
</span><a href="#local-6989586621679098893"><span class="hs-identifier hs-var">charMovement</span></a></span><span> </span><span class="annot"><span class="annottext">Char
</span><span class="hs-char">'F'</span></span><span> </span><span class="annot"><span class="annottext">((Char -&gt; InsertMode -&gt; InsertMode)
 -&gt; KeyMap (Command (ViT m) (ArgMode CommandMode) CommandMode))
-&gt; (Char -&gt; InsertMode -&gt; InsertMode)
-&gt; KeyMap (Command (ViT m) (ArgMode CommandMode) CommandMode)
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="hs-glyph">\</span><span id="local-6989586621679098889"><span class="annot"><span class="annottext">Char
</span><a href="#local-6989586621679098889"><span class="hs-identifier hs-var">c</span></a></span></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">(InsertMode -&gt; Bool) -&gt; InsertMode -&gt; InsertMode
</span><a href="System.Console.Haskeline.LineState.html#goLeftUntil"><span class="hs-identifier hs-var">goLeftUntil</span></a></span><span> </span><span class="annot"><span class="annottext">((InsertMode -&gt; Bool) -&gt; InsertMode -&gt; InsertMode)
-&gt; (InsertMode -&gt; Bool) -&gt; InsertMode -&gt; InsertMode
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="annot"><span class="annottext">(Char -&gt; Bool) -&gt; InsertMode -&gt; Bool
</span><a href="System.Console.Haskeline.LineState.html#overChar"><span class="hs-identifier hs-var">overChar</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Char -&gt; Char -&gt; Bool
forall a. Eq a =&gt; a -&gt; a -&gt; Bool
</span><span class="hs-operator hs-var">==</span></span><span class="annot"><span class="annottext">Char
</span><a href="#local-6989586621679098889"><span class="hs-identifier hs-var">c</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-157"></span><span>                        </span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">Char
-&gt; (Char -&gt; InsertMode -&gt; InsertMode)
-&gt; KeyMap (Command (ViT m) (ArgMode CommandMode) CommandMode)
forall {m :: * -&gt; *}.
Monad m =&gt;
Char
-&gt; (Char -&gt; InsertMode -&gt; InsertMode)
-&gt; KeyMap (Command m (ArgMode CommandMode) CommandMode)
</span><a href="#local-6989586621679098893"><span class="hs-identifier hs-var">charMovement</span></a></span><span> </span><span class="annot"><span class="annottext">Char
</span><span class="hs-char">'t'</span></span><span> </span><span class="annot"><span class="annottext">((Char -&gt; InsertMode -&gt; InsertMode)
 -&gt; KeyMap (Command (ViT m) (ArgMode CommandMode) CommandMode))
-&gt; (Char -&gt; InsertMode -&gt; InsertMode)
-&gt; KeyMap (Command (ViT m) (ArgMode CommandMode) CommandMode)
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="hs-glyph">\</span><span id="local-6989586621679098887"><span class="annot"><span class="annottext">Char
</span><a href="#local-6989586621679098887"><span class="hs-identifier hs-var">c</span></a></span></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">(InsertMode -&gt; Bool) -&gt; InsertMode -&gt; InsertMode
</span><a href="System.Console.Haskeline.LineState.html#goRightUntil"><span class="hs-identifier hs-var">goRightUntil</span></a></span><span> </span><span class="annot"><span class="annottext">((InsertMode -&gt; Bool) -&gt; InsertMode -&gt; InsertMode)
-&gt; (InsertMode -&gt; Bool) -&gt; InsertMode -&gt; InsertMode
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="annot"><span class="annottext">(Char -&gt; Bool) -&gt; InsertMode -&gt; Bool
</span><a href="System.Console.Haskeline.LineState.html#beforeChar"><span class="hs-identifier hs-var">beforeChar</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Char -&gt; Char -&gt; Bool
forall a. Eq a =&gt; a -&gt; a -&gt; Bool
</span><span class="hs-operator hs-var">==</span></span><span class="annot"><span class="annottext">Char
</span><a href="#local-6989586621679098887"><span class="hs-identifier hs-var">c</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-158"></span><span>                        </span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">Char
-&gt; (Char -&gt; InsertMode -&gt; InsertMode)
-&gt; KeyMap (Command (ViT m) (ArgMode CommandMode) CommandMode)
forall {m :: * -&gt; *}.
Monad m =&gt;
Char
-&gt; (Char -&gt; InsertMode -&gt; InsertMode)
-&gt; KeyMap (Command m (ArgMode CommandMode) CommandMode)
</span><a href="#local-6989586621679098893"><span class="hs-identifier hs-var">charMovement</span></a></span><span> </span><span class="annot"><span class="annottext">Char
</span><span class="hs-char">'T'</span></span><span> </span><span class="annot"><span class="annottext">((Char -&gt; InsertMode -&gt; InsertMode)
 -&gt; KeyMap (Command (ViT m) (ArgMode CommandMode) CommandMode))
-&gt; (Char -&gt; InsertMode -&gt; InsertMode)
-&gt; KeyMap (Command (ViT m) (ArgMode CommandMode) CommandMode)
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="hs-glyph">\</span><span id="local-6989586621679098885"><span class="annot"><span class="annottext">Char
</span><a href="#local-6989586621679098885"><span class="hs-identifier hs-var">c</span></a></span></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">(InsertMode -&gt; Bool) -&gt; InsertMode -&gt; InsertMode
</span><a href="System.Console.Haskeline.LineState.html#goLeftUntil"><span class="hs-identifier hs-var">goLeftUntil</span></a></span><span> </span><span class="annot"><span class="annottext">((InsertMode -&gt; Bool) -&gt; InsertMode -&gt; InsertMode)
-&gt; (InsertMode -&gt; Bool) -&gt; InsertMode -&gt; InsertMode
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="annot"><span class="annottext">(Char -&gt; Bool) -&gt; InsertMode -&gt; Bool
</span><a href="System.Console.Haskeline.LineState.html#afterChar"><span class="hs-identifier hs-var">afterChar</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Char -&gt; Char -&gt; Bool
forall a. Eq a =&gt; a -&gt; a -&gt; Bool
</span><span class="hs-operator hs-var">==</span></span><span class="annot"><span class="annottext">Char
</span><a href="#local-6989586621679098885"><span class="hs-identifier hs-var">c</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-159"></span><span>                        </span><span class="hs-special">]</span><span>
</span><span id="line-160"></span><span>        </span><span id="local-6989586621679098903"><span class="annot"><span class="annottext">mkSimpleCommand :: (Key, InsertMode -&gt; InsertMode)
-&gt; KeyMap (Command m (ArgMode CommandMode) CommandMode)
</span><a href="#local-6989586621679098903"><span class="hs-identifier hs-var hs-var">mkSimpleCommand</span></a></span></span><span> </span><span class="hs-special">(</span><span id="local-6989586621679098880"><span class="annot"><span class="annottext">Key
</span><a href="#local-6989586621679098880"><span class="hs-identifier hs-var">k</span></a></span></span><span class="hs-special">,</span><span id="local-6989586621679098879"><span class="annot"><span class="annottext">InsertMode -&gt; InsertMode
</span><a href="#local-6989586621679098879"><span class="hs-identifier hs-var">move</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Key
</span><a href="#local-6989586621679098880"><span class="hs-identifier hs-var">k</span></a></span><span> </span><span class="annot"><span class="annottext">Key
-&gt; Command m (ArgMode CommandMode) CommandMode
-&gt; KeyMap (Command m (ArgMode CommandMode) CommandMode)
forall a. Key -&gt; a -&gt; KeyMap a
</span><a href="System.Console.Haskeline.Command.html#%2B%3E"><span class="hs-operator hs-var">+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">(ArgMode CommandMode -&gt; CommandMode)
-&gt; Command m (ArgMode CommandMode) CommandMode
forall t (m :: * -&gt; *) s.
(LineState t, Monad m) =&gt;
(s -&gt; t) -&gt; Command m s t
</span><a href="System.Console.Haskeline.Command.html#change"><span class="hs-identifier hs-var">change</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">(InsertMode -&gt; InsertMode) -&gt; ArgMode CommandMode -&gt; CommandMode
</span><a href="System.Console.Haskeline.LineState.html#applyCmdArg"><span class="hs-identifier hs-var">applyCmdArg</span></a></span><span> </span><span class="annot"><span class="annottext">InsertMode -&gt; InsertMode
</span><a href="#local-6989586621679098879"><span class="hs-identifier hs-var">move</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-161"></span><span>        </span><span id="local-6989586621679098893"><span class="annot"><span class="annottext">charMovement :: Char
-&gt; (Char -&gt; InsertMode -&gt; InsertMode)
-&gt; KeyMap (Command m (ArgMode CommandMode) CommandMode)
</span><a href="#local-6989586621679098893"><span class="hs-identifier hs-var hs-var">charMovement</span></a></span></span><span> </span><span id="local-6989586621679098872"><span class="annot"><span class="annottext">Char
</span><a href="#local-6989586621679098872"><span class="hs-identifier hs-var">c</span></a></span></span><span> </span><span id="local-6989586621679098871"><span class="annot"><span class="annottext">Char -&gt; InsertMode -&gt; InsertMode
</span><a href="#local-6989586621679098871"><span class="hs-identifier hs-var">move</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Char -&gt; Key
</span><a href="System.Console.Haskeline.Key.html#simpleChar"><span class="hs-identifier hs-var">simpleChar</span></a></span><span> </span><span class="annot"><span class="annottext">Char
</span><a href="#local-6989586621679098872"><span class="hs-identifier hs-var">c</span></a></span><span> </span><span class="annot"><span class="annottext">Key
-&gt; Command m (ArgMode CommandMode) CommandMode
-&gt; KeyMap (Command m (ArgMode CommandMode) CommandMode)
forall a. Key -&gt; a -&gt; KeyMap a
</span><a href="System.Console.Haskeline.Command.html#%2B%3E"><span class="hs-operator hs-var">+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">[KeyMap (Command m (ArgMode CommandMode) CommandMode)]
-&gt; Command m (ArgMode CommandMode) CommandMode
forall (m :: * -&gt; *) s t. [KeyCommand m s t] -&gt; Command m s t
</span><a href="System.Console.Haskeline.Command.html#keyChoiceCmd"><span class="hs-identifier hs-var">keyChoiceCmd</span></a></span><span> </span><span class="hs-special">[</span><span>
</span><span id="line-162"></span><span>                                        </span><span class="annot"><span class="annottext">(Char -&gt; Command m (ArgMode CommandMode) CommandMode)
-&gt; KeyMap (Command m (ArgMode CommandMode) CommandMode)
forall (m :: * -&gt; *) s t.
(Char -&gt; Command m s t) -&gt; KeyCommand m s t
</span><a href="System.Console.Haskeline.Command.html#useChar"><span class="hs-identifier hs-var">useChar</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">(ArgMode CommandMode -&gt; CommandMode)
-&gt; Command m (ArgMode CommandMode) CommandMode
forall t (m :: * -&gt; *) s.
(LineState t, Monad m) =&gt;
(s -&gt; t) -&gt; Command m s t
</span><a href="System.Console.Haskeline.Command.html#change"><span class="hs-identifier hs-var">change</span></a></span><span> </span><span class="annot"><span class="annottext">((ArgMode CommandMode -&gt; CommandMode)
 -&gt; Command m (ArgMode CommandMode) CommandMode)
-&gt; (Char -&gt; ArgMode CommandMode -&gt; CommandMode)
-&gt; Char
-&gt; Command m (ArgMode CommandMode) CommandMode
forall b c a. (b -&gt; c) -&gt; (a -&gt; b) -&gt; a -&gt; c
</span><a href="../../base/src/GHC.Base.html#."><span class="hs-operator hs-var">.</span></a></span><span> </span><span class="annot"><span class="annottext">(InsertMode -&gt; InsertMode) -&gt; ArgMode CommandMode -&gt; CommandMode
</span><a href="System.Console.Haskeline.LineState.html#applyCmdArg"><span class="hs-identifier hs-var">applyCmdArg</span></a></span><span> </span><span class="annot"><span class="annottext">((InsertMode -&gt; InsertMode) -&gt; ArgMode CommandMode -&gt; CommandMode)
-&gt; (Char -&gt; InsertMode -&gt; InsertMode)
-&gt; Char
-&gt; ArgMode CommandMode
-&gt; CommandMode
forall b c a. (b -&gt; c) -&gt; (a -&gt; b) -&gt; a -&gt; c
</span><a href="../../base/src/GHC.Base.html#."><span class="hs-operator hs-var">.</span></a></span><span> </span><span class="annot"><span class="annottext">Char -&gt; InsertMode -&gt; InsertMode
</span><a href="#local-6989586621679098871"><span class="hs-identifier hs-var">move</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-163"></span><span>                                        </span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">Command m (ArgMode CommandMode) CommandMode
-&gt; KeyMap (Command m (ArgMode CommandMode) CommandMode)
forall (m :: * -&gt; *) s t. Command m s t -&gt; KeyCommand m s t
</span><a href="System.Console.Haskeline.Command.html#withoutConsuming"><span class="hs-identifier hs-var">withoutConsuming</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">(ArgMode CommandMode -&gt; CommandMode)
-&gt; Command m (ArgMode CommandMode) CommandMode
forall t (m :: * -&gt; *) s.
(LineState t, Monad m) =&gt;
(s -&gt; t) -&gt; Command m s t
</span><a href="System.Console.Haskeline.Command.html#change"><span class="hs-identifier hs-var">change</span></a></span><span> </span><span class="annot"><span class="annottext">ArgMode CommandMode -&gt; CommandMode
forall s. ArgMode s -&gt; s
</span><a href="System.Console.Haskeline.LineState.html#argState"><span class="hs-identifier hs-var hs-var">argState</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-164"></span><span>                                        </span><span class="hs-special">]</span><span>
</span><span id="line-165"></span><span>
</span><span id="line-166"></span><span id="local-6989586621679099478"><span id="local-6989586621679099479"><span id="local-6989586621679099480"><span class="annot"><a href="System.Console.Haskeline.Vi.html#useMovementsForKill"><span class="hs-identifier hs-type">useMovementsForKill</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="System.Console.Haskeline.Command.html#Command"><span class="hs-identifier hs-type">Command</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679099480"><span class="hs-identifier hs-type">m</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679099479"><span class="hs-identifier hs-type">s</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679099478"><span class="hs-identifier hs-type">t</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="hs-special">(</span><span class="annot"><a href="System.Console.Haskeline.Command.KillRing.html#KillHelper"><span class="hs-identifier hs-type">KillHelper</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="System.Console.Haskeline.Command.html#Command"><span class="hs-identifier hs-type">Command</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679099480"><span class="hs-identifier hs-type">m</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679099479"><span class="hs-identifier hs-type">s</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679099478"><span class="hs-identifier hs-type">t</span></a></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="System.Console.Haskeline.Command.html#KeyCommand"><span class="hs-identifier hs-type">KeyCommand</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679099480"><span class="hs-identifier hs-type">m</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679099479"><span class="hs-identifier hs-type">s</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679099478"><span class="hs-identifier hs-type">t</span></a></span></span></span></span><span>
</span><span id="line-167"></span><span id="useMovementsForKill"><span class="annot"><span class="annottext">useMovementsForKill :: forall (m :: * -&gt; *) s t.
Command m s t -&gt; (KillHelper -&gt; Command m s t) -&gt; KeyCommand m s t
</span><a href="System.Console.Haskeline.Vi.html#useMovementsForKill"><span class="hs-identifier hs-var hs-var">useMovementsForKill</span></a></span></span><span> </span><span id="local-6989586621679098869"><span class="annot"><span class="annottext">Command m s t
</span><a href="#local-6989586621679098869"><span class="hs-identifier hs-var">alternate</span></a></span></span><span> </span><span id="local-6989586621679098868"><span class="annot"><span class="annottext">KillHelper -&gt; Command m s t
</span><a href="#local-6989586621679098868"><span class="hs-identifier hs-var">useHelper</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">[KeyMap (Command m s t)] -&gt; KeyMap (Command m s t)
forall a. [KeyMap a] -&gt; KeyMap a
</span><a href="System.Console.Haskeline.Command.html#choiceCmd"><span class="hs-identifier hs-var">choiceCmd</span></a></span><span> </span><span class="annot"><span class="annottext">([KeyMap (Command m s t)] -&gt; KeyMap (Command m s t))
-&gt; [KeyMap (Command m s t)] -&gt; KeyMap (Command m s t)
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span>
</span><span id="line-168"></span><span>            </span><span class="annot"><span class="annottext">[KeyMap (Command m s t)]
</span><a href="#local-6989586621679098867"><span class="hs-identifier hs-var">specialCases</span></a></span><span>
</span><span id="line-169"></span><span>            </span><span class="annot"><span class="annottext">[KeyMap (Command m s t)]
-&gt; [KeyMap (Command m s t)] -&gt; [KeyMap (Command m s t)]
forall a. [a] -&gt; [a] -&gt; [a]
</span><a href="../../base/src/GHC.Base.html#%2B%2B"><span class="hs-operator hs-var">++</span></a></span><span> </span><span class="annot"><span class="annottext">((Key, InsertMode -&gt; InsertMode) -&gt; KeyMap (Command m s t))
-&gt; [(Key, InsertMode -&gt; InsertMode)] -&gt; [KeyMap (Command m s t)]
forall a b. (a -&gt; b) -&gt; [a] -&gt; [b]
</span><a href="../../base/src/GHC.Base.html#map"><span class="hs-identifier hs-var">map</span></a></span><span> </span><span class="hs-special">(</span><span class="hs-glyph">\</span><span class="hs-special">(</span><span id="local-6989586621679098866"><span class="annot"><span class="annottext">Key
</span><a href="#local-6989586621679098866"><span class="hs-identifier hs-var">k</span></a></span></span><span class="hs-special">,</span><span id="local-6989586621679098865"><span class="annot"><span class="annottext">InsertMode -&gt; InsertMode
</span><a href="#local-6989586621679098865"><span class="hs-identifier hs-var">move</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">Key
</span><a href="#local-6989586621679098866"><span class="hs-identifier hs-var">k</span></a></span><span> </span><span class="annot"><span class="annottext">Key -&gt; Command m s t -&gt; KeyMap (Command m s t)
forall a. Key -&gt; a -&gt; KeyMap a
</span><a href="System.Console.Haskeline.Command.html#%2B%3E"><span class="hs-operator hs-var">+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">KillHelper -&gt; Command m s t
</span><a href="#local-6989586621679098868"><span class="hs-identifier hs-var">useHelper</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">(InsertMode -&gt; InsertMode) -&gt; KillHelper
</span><a href="System.Console.Haskeline.Command.KillRing.html#SimpleMove"><span class="hs-identifier hs-var">SimpleMove</span></a></span><span> </span><span class="annot"><span class="annottext">InsertMode -&gt; InsertMode
</span><a href="#local-6989586621679098865"><span class="hs-identifier hs-var">move</span></a></span><span class="hs-special">)</span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">[(Key, InsertMode -&gt; InsertMode)]
</span><a href="System.Console.Haskeline.Vi.html#movements"><span class="hs-identifier hs-var">movements</span></a></span><span>
</span><span id="line-170"></span><span>    </span><span class="hs-keyword">where</span><span>
</span><span id="line-171"></span><span>        </span><span id="local-6989586621679098867"><span class="annot"><span class="annottext">specialCases :: [KeyMap (Command m s t)]
</span><a href="#local-6989586621679098867"><span class="hs-identifier hs-var hs-var">specialCases</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="hs-special">[</span><span> </span><span class="annot"><span class="annottext">Char -&gt; Key
</span><a href="System.Console.Haskeline.Key.html#simpleChar"><span class="hs-identifier hs-var">simpleChar</span></a></span><span> </span><span class="annot"><span class="annottext">Char
</span><span class="hs-char">'e'</span></span><span> </span><span class="annot"><span class="annottext">Key -&gt; Command m s t -&gt; KeyMap (Command m s t)
forall a. Key -&gt; a -&gt; KeyMap a
</span><a href="System.Console.Haskeline.Command.html#%2B%3E"><span class="hs-operator hs-var">+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">KillHelper -&gt; Command m s t
</span><a href="#local-6989586621679098868"><span class="hs-identifier hs-var">useHelper</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">(InsertMode -&gt; InsertMode) -&gt; KillHelper
</span><a href="System.Console.Haskeline.Command.KillRing.html#SimpleMove"><span class="hs-identifier hs-var">SimpleMove</span></a></span><span> </span><span class="annot"><span class="annottext">InsertMode -&gt; InsertMode
</span><a href="System.Console.Haskeline.Vi.html#goToWordDelEnd"><span class="hs-identifier hs-var">goToWordDelEnd</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-172"></span><span>                       </span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">Char -&gt; Key
</span><a href="System.Console.Haskeline.Key.html#simpleChar"><span class="hs-identifier hs-var">simpleChar</span></a></span><span> </span><span class="annot"><span class="annottext">Char
</span><span class="hs-char">'E'</span></span><span> </span><span class="annot"><span class="annottext">Key -&gt; Command m s t -&gt; KeyMap (Command m s t)
forall a. Key -&gt; a -&gt; KeyMap a
</span><a href="System.Console.Haskeline.Command.html#%2B%3E"><span class="hs-operator hs-var">+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">KillHelper -&gt; Command m s t
</span><a href="#local-6989586621679098868"><span class="hs-identifier hs-var">useHelper</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">(InsertMode -&gt; InsertMode) -&gt; KillHelper
</span><a href="System.Console.Haskeline.Command.KillRing.html#SimpleMove"><span class="hs-identifier hs-var">SimpleMove</span></a></span><span> </span><span class="annot"><span class="annottext">InsertMode -&gt; InsertMode
</span><a href="System.Console.Haskeline.Vi.html#goToBigWordDelEnd"><span class="hs-identifier hs-var">goToBigWordDelEnd</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-173"></span><span>                       </span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">Char -&gt; Key
</span><a href="System.Console.Haskeline.Key.html#simpleChar"><span class="hs-identifier hs-var">simpleChar</span></a></span><span> </span><span class="annot"><span class="annottext">Char
</span><span class="hs-char">'%'</span></span><span> </span><span class="annot"><span class="annottext">Key -&gt; Command m s t -&gt; KeyMap (Command m s t)
forall a. Key -&gt; a -&gt; KeyMap a
</span><a href="System.Console.Haskeline.Command.html#%2B%3E"><span class="hs-operator hs-var">+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">KillHelper -&gt; Command m s t
</span><a href="#local-6989586621679098868"><span class="hs-identifier hs-var">useHelper</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">(InsertMode -&gt; ([Grapheme], InsertMode)) -&gt; KillHelper
</span><a href="System.Console.Haskeline.Command.KillRing.html#GenericKill"><span class="hs-identifier hs-var">GenericKill</span></a></span><span> </span><span class="annot"><span class="annottext">InsertMode -&gt; ([Grapheme], InsertMode)
</span><a href="System.Console.Haskeline.Vi.html#deleteMatchingBrace"><span class="hs-identifier hs-var">deleteMatchingBrace</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-174"></span><span>                       </span><span class="hs-comment">-- Note 't' and 'f' behave differently than in pureMovements.</span><span>
</span><span id="line-175"></span><span>                       </span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">Char
-&gt; (Char -&gt; InsertMode -&gt; InsertMode) -&gt; KeyMap (Command m s t)
</span><a href="#local-6989586621679098856"><span class="hs-identifier hs-var">charMovement</span></a></span><span> </span><span class="annot"><span class="annottext">Char
</span><span class="hs-char">'f'</span></span><span> </span><span class="annot"><span class="annottext">((Char -&gt; InsertMode -&gt; InsertMode) -&gt; KeyMap (Command m s t))
-&gt; (Char -&gt; InsertMode -&gt; InsertMode) -&gt; KeyMap (Command m s t)
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="hs-glyph">\</span><span id="local-6989586621679098855"><span class="annot"><span class="annottext">Char
</span><a href="#local-6989586621679098855"><span class="hs-identifier hs-var">c</span></a></span></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">(InsertMode -&gt; Bool) -&gt; InsertMode -&gt; InsertMode
</span><a href="System.Console.Haskeline.LineState.html#goRightUntil"><span class="hs-identifier hs-var">goRightUntil</span></a></span><span> </span><span class="annot"><span class="annottext">((InsertMode -&gt; Bool) -&gt; InsertMode -&gt; InsertMode)
-&gt; (InsertMode -&gt; Bool) -&gt; InsertMode -&gt; InsertMode
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="annot"><span class="annottext">(Char -&gt; Bool) -&gt; InsertMode -&gt; Bool
</span><a href="System.Console.Haskeline.LineState.html#afterChar"><span class="hs-identifier hs-var">afterChar</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Char -&gt; Char -&gt; Bool
forall a. Eq a =&gt; a -&gt; a -&gt; Bool
</span><span class="hs-operator hs-var">==</span></span><span class="annot"><span class="annottext">Char
</span><a href="#local-6989586621679098855"><span class="hs-identifier hs-var">c</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-176"></span><span>                       </span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">Char
-&gt; (Char -&gt; InsertMode -&gt; InsertMode) -&gt; KeyMap (Command m s t)
</span><a href="#local-6989586621679098856"><span class="hs-identifier hs-var">charMovement</span></a></span><span> </span><span class="annot"><span class="annottext">Char
</span><span class="hs-char">'F'</span></span><span> </span><span class="annot"><span class="annottext">((Char -&gt; InsertMode -&gt; InsertMode) -&gt; KeyMap (Command m s t))
-&gt; (Char -&gt; InsertMode -&gt; InsertMode) -&gt; KeyMap (Command m s t)
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="hs-glyph">\</span><span id="local-6989586621679098854"><span class="annot"><span class="annottext">Char
</span><a href="#local-6989586621679098854"><span class="hs-identifier hs-var">c</span></a></span></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">(InsertMode -&gt; Bool) -&gt; InsertMode -&gt; InsertMode
</span><a href="System.Console.Haskeline.LineState.html#goLeftUntil"><span class="hs-identifier hs-var">goLeftUntil</span></a></span><span> </span><span class="annot"><span class="annottext">((InsertMode -&gt; Bool) -&gt; InsertMode -&gt; InsertMode)
-&gt; (InsertMode -&gt; Bool) -&gt; InsertMode -&gt; InsertMode
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="annot"><span class="annottext">(Char -&gt; Bool) -&gt; InsertMode -&gt; Bool
</span><a href="System.Console.Haskeline.LineState.html#overChar"><span class="hs-identifier hs-var">overChar</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Char -&gt; Char -&gt; Bool
forall a. Eq a =&gt; a -&gt; a -&gt; Bool
</span><span class="hs-operator hs-var">==</span></span><span class="annot"><span class="annottext">Char
</span><a href="#local-6989586621679098854"><span class="hs-identifier hs-var">c</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-177"></span><span>                       </span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">Char
-&gt; (Char -&gt; InsertMode -&gt; InsertMode) -&gt; KeyMap (Command m s t)
</span><a href="#local-6989586621679098856"><span class="hs-identifier hs-var">charMovement</span></a></span><span> </span><span class="annot"><span class="annottext">Char
</span><span class="hs-char">'t'</span></span><span> </span><span class="annot"><span class="annottext">((Char -&gt; InsertMode -&gt; InsertMode) -&gt; KeyMap (Command m s t))
-&gt; (Char -&gt; InsertMode -&gt; InsertMode) -&gt; KeyMap (Command m s t)
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="hs-glyph">\</span><span id="local-6989586621679098853"><span class="annot"><span class="annottext">Char
</span><a href="#local-6989586621679098853"><span class="hs-identifier hs-var">c</span></a></span></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">(InsertMode -&gt; Bool) -&gt; InsertMode -&gt; InsertMode
</span><a href="System.Console.Haskeline.LineState.html#goRightUntil"><span class="hs-identifier hs-var">goRightUntil</span></a></span><span> </span><span class="annot"><span class="annottext">((InsertMode -&gt; Bool) -&gt; InsertMode -&gt; InsertMode)
-&gt; (InsertMode -&gt; Bool) -&gt; InsertMode -&gt; InsertMode
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="annot"><span class="annottext">(Char -&gt; Bool) -&gt; InsertMode -&gt; Bool
</span><a href="System.Console.Haskeline.LineState.html#overChar"><span class="hs-identifier hs-var">overChar</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Char -&gt; Char -&gt; Bool
forall a. Eq a =&gt; a -&gt; a -&gt; Bool
</span><span class="hs-operator hs-var">==</span></span><span class="annot"><span class="annottext">Char
</span><a href="#local-6989586621679098853"><span class="hs-identifier hs-var">c</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-178"></span><span>                       </span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">Char
-&gt; (Char -&gt; InsertMode -&gt; InsertMode) -&gt; KeyMap (Command m s t)
</span><a href="#local-6989586621679098856"><span class="hs-identifier hs-var">charMovement</span></a></span><span> </span><span class="annot"><span class="annottext">Char
</span><span class="hs-char">'T'</span></span><span> </span><span class="annot"><span class="annottext">((Char -&gt; InsertMode -&gt; InsertMode) -&gt; KeyMap (Command m s t))
-&gt; (Char -&gt; InsertMode -&gt; InsertMode) -&gt; KeyMap (Command m s t)
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="hs-glyph">\</span><span id="local-6989586621679098852"><span class="annot"><span class="annottext">Char
</span><a href="#local-6989586621679098852"><span class="hs-identifier hs-var">c</span></a></span></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">(InsertMode -&gt; Bool) -&gt; InsertMode -&gt; InsertMode
</span><a href="System.Console.Haskeline.LineState.html#goLeftUntil"><span class="hs-identifier hs-var">goLeftUntil</span></a></span><span> </span><span class="annot"><span class="annottext">((InsertMode -&gt; Bool) -&gt; InsertMode -&gt; InsertMode)
-&gt; (InsertMode -&gt; Bool) -&gt; InsertMode -&gt; InsertMode
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="annot"><span class="annottext">(Char -&gt; Bool) -&gt; InsertMode -&gt; Bool
</span><a href="System.Console.Haskeline.LineState.html#afterChar"><span class="hs-identifier hs-var">afterChar</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Char -&gt; Char -&gt; Bool
forall a. Eq a =&gt; a -&gt; a -&gt; Bool
</span><span class="hs-operator hs-var">==</span></span><span class="annot"><span class="annottext">Char
</span><a href="#local-6989586621679098852"><span class="hs-identifier hs-var">c</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-179"></span><span>                       </span><span class="hs-special">]</span><span>
</span><span id="line-180"></span><span>        </span><span id="local-6989586621679098856"><span class="annot"><span class="annottext">charMovement :: Char
-&gt; (Char -&gt; InsertMode -&gt; InsertMode) -&gt; KeyMap (Command m s t)
</span><a href="#local-6989586621679098856"><span class="hs-identifier hs-var hs-var">charMovement</span></a></span></span><span> </span><span id="local-6989586621679098851"><span class="annot"><span class="annottext">Char
</span><a href="#local-6989586621679098851"><span class="hs-identifier hs-var">c</span></a></span></span><span> </span><span id="local-6989586621679098850"><span class="annot"><span class="annottext">Char -&gt; InsertMode -&gt; InsertMode
</span><a href="#local-6989586621679098850"><span class="hs-identifier hs-var">move</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Char -&gt; Key
</span><a href="System.Console.Haskeline.Key.html#simpleChar"><span class="hs-identifier hs-var">simpleChar</span></a></span><span> </span><span class="annot"><span class="annottext">Char
</span><a href="#local-6989586621679098851"><span class="hs-identifier hs-var">c</span></a></span><span> </span><span class="annot"><span class="annottext">Key -&gt; Command m s t -&gt; KeyMap (Command m s t)
forall a. Key -&gt; a -&gt; KeyMap a
</span><a href="System.Console.Haskeline.Command.html#%2B%3E"><span class="hs-operator hs-var">+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">[KeyMap (Command m s t)] -&gt; Command m s t
forall (m :: * -&gt; *) s t. [KeyCommand m s t] -&gt; Command m s t
</span><a href="System.Console.Haskeline.Command.html#keyChoiceCmd"><span class="hs-identifier hs-var">keyChoiceCmd</span></a></span><span> </span><span class="hs-special">[</span><span>
</span><span id="line-181"></span><span>                                    </span><span class="annot"><span class="annottext">(Char -&gt; Command m s t) -&gt; KeyMap (Command m s t)
forall (m :: * -&gt; *) s t.
(Char -&gt; Command m s t) -&gt; KeyCommand m s t
</span><a href="System.Console.Haskeline.Command.html#useChar"><span class="hs-identifier hs-var">useChar</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">KillHelper -&gt; Command m s t
</span><a href="#local-6989586621679098868"><span class="hs-identifier hs-var">useHelper</span></a></span><span> </span><span class="annot"><span class="annottext">(KillHelper -&gt; Command m s t)
-&gt; (Char -&gt; KillHelper) -&gt; Char -&gt; Command m s t
forall b c a. (b -&gt; c) -&gt; (a -&gt; b) -&gt; a -&gt; c
</span><a href="../../base/src/GHC.Base.html#."><span class="hs-operator hs-var">.</span></a></span><span> </span><span class="annot"><span class="annottext">(InsertMode -&gt; InsertMode) -&gt; KillHelper
</span><a href="System.Console.Haskeline.Command.KillRing.html#SimpleMove"><span class="hs-identifier hs-var">SimpleMove</span></a></span><span> </span><span class="annot"><span class="annottext">((InsertMode -&gt; InsertMode) -&gt; KillHelper)
-&gt; (Char -&gt; InsertMode -&gt; InsertMode) -&gt; Char -&gt; KillHelper
forall b c a. (b -&gt; c) -&gt; (a -&gt; b) -&gt; a -&gt; c
</span><a href="../../base/src/GHC.Base.html#."><span class="hs-operator hs-var">.</span></a></span><span> </span><span class="annot"><span class="annottext">Char -&gt; InsertMode -&gt; InsertMode
</span><a href="#local-6989586621679098850"><span class="hs-identifier hs-var">move</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-182"></span><span>                                    </span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">Command m s t -&gt; KeyMap (Command m s t)
forall (m :: * -&gt; *) s t. Command m s t -&gt; KeyCommand m s t
</span><a href="System.Console.Haskeline.Command.html#withoutConsuming"><span class="hs-identifier hs-var">withoutConsuming</span></a></span><span> </span><span class="annot"><span class="annottext">Command m s t
</span><a href="#local-6989586621679098869"><span class="hs-identifier hs-var">alternate</span></a></span><span class="hs-special">]</span><span>
</span><span id="line-183"></span><span>
</span><span id="line-184"></span><span>
</span><span id="line-185"></span><span class="annot"><a href="System.Console.Haskeline.Vi.html#repeatableCommands"><span class="hs-identifier hs-type">repeatableCommands</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="System.Console.Haskeline.Vi.html#InputKeyCmd"><span class="hs-identifier hs-type">InputKeyCmd</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="System.Console.Haskeline.LineState.html#ArgMode"><span class="hs-identifier hs-type">ArgMode</span></a></span><span> </span><span class="annot"><a href="System.Console.Haskeline.LineState.html#CommandMode"><span class="hs-identifier hs-type">CommandMode</span></a></span><span class="hs-special">)</span><span> </span><span class="annot"><a href="System.Console.Haskeline.Vi.html#EitherMode"><span class="hs-identifier hs-type">EitherMode</span></a></span><span>
</span><span id="line-186"></span><span id="repeatableCommands"><span class="annot"><span class="annottext">repeatableCommands :: InputKeyCmd (ArgMode CommandMode) (Either CommandMode InsertMode)
</span><a href="System.Console.Haskeline.Vi.html#repeatableCommands"><span class="hs-identifier hs-var hs-var">repeatableCommands</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">[KeyMap
   (Command
      (ViT m) (ArgMode CommandMode) (Either CommandMode InsertMode))]
-&gt; KeyMap
     (Command
        (ViT m) (ArgMode CommandMode) (Either CommandMode InsertMode))
forall a. [KeyMap a] -&gt; KeyMap a
</span><a href="System.Console.Haskeline.Command.html#choiceCmd"><span class="hs-identifier hs-var">choiceCmd</span></a></span><span>
</span><span id="line-187"></span><span>                        </span><span class="hs-special">[</span><span> </span><span class="annot"><span class="annottext">KeyMap
  (Command
     (ViT m) (ArgMode CommandMode) (Either CommandMode InsertMode))
InputKeyCmd (ArgMode CommandMode) (Either CommandMode InsertMode)
</span><a href="System.Console.Haskeline.Vi.html#repeatableCmdToIMode"><span class="hs-identifier hs-var">repeatableCmdToIMode</span></a></span><span>
</span><span id="line-188"></span><span>                        </span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">KeyCommand (ViT m) (ArgMode CommandMode) CommandMode
InputKeyCmd (ArgMode CommandMode) CommandMode
</span><a href="System.Console.Haskeline.Vi.html#repeatableCmdMode"><span class="hs-identifier hs-var">repeatableCmdMode</span></a></span><span> </span><span class="annot"><span class="annottext">KeyCommand (ViT m) (ArgMode CommandMode) CommandMode
-&gt; Command (ViT m) CommandMode (Either CommandMode InsertMode)
-&gt; KeyMap
     (Command
        (ViT m) (ArgMode CommandMode) (Either CommandMode InsertMode))
forall (m :: * -&gt; *) s t u.
Monad m =&gt;
KeyCommand m s t -&gt; Command m t u -&gt; KeyCommand m s u
</span><a href="System.Console.Haskeline.Command.html#%3E%2B%3E"><span class="hs-operator hs-var">&gt;+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">Either CommandMode InsertMode
-&gt; CmdM (ViT m) (Either CommandMode InsertMode)
forall (m :: * -&gt; *) a. Monad m =&gt; a -&gt; m a
</span><a href="../../base/src/GHC.Base.html#return"><span class="hs-identifier hs-var">return</span></a></span><span> </span><span class="annot"><span class="annottext">(Either CommandMode InsertMode
 -&gt; CmdM (ViT m) (Either CommandMode InsertMode))
-&gt; (CommandMode -&gt; Either CommandMode InsertMode)
-&gt; Command (ViT m) CommandMode (Either CommandMode InsertMode)
forall b c a. (b -&gt; c) -&gt; (a -&gt; b) -&gt; a -&gt; c
</span><a href="../../base/src/GHC.Base.html#."><span class="hs-operator hs-var">.</span></a></span><span> </span><span class="annot"><span class="annottext">CommandMode -&gt; Either CommandMode InsertMode
forall a b. a -&gt; Either a b
</span><a href="../../base/src/Data.Either.html#Left"><span class="hs-identifier hs-var">Left</span></a></span><span>
</span><span id="line-189"></span><span>                        </span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">Char -&gt; Key
</span><a href="System.Console.Haskeline.Key.html#simpleChar"><span class="hs-identifier hs-var">simpleChar</span></a></span><span> </span><span class="annot"><span class="annottext">Char
</span><span class="hs-char">'.'</span></span><span> </span><span class="annot"><span class="annottext">Key
-&gt; Command
     (ViT m) (ArgMode CommandMode) (Either CommandMode InsertMode)
-&gt; KeyMap
     (Command
        (ViT m) (ArgMode CommandMode) (Either CommandMode InsertMode))
forall a. Key -&gt; a -&gt; KeyMap a
</span><a href="System.Console.Haskeline.Command.html#%2B%3E"><span class="hs-operator hs-var">+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">Command (ViT m) (ArgMode CommandMode) (ArgMode CommandMode)
forall s (m :: * -&gt; *).
(Save s, MonadState Undo m) =&gt;
Command m s s
</span><a href="System.Console.Haskeline.Command.Undo.html#saveForUndo"><span class="hs-identifier hs-var">saveForUndo</span></a></span><span> </span><span class="annot"><span class="annottext">Command (ViT m) (ArgMode CommandMode) (ArgMode CommandMode)
-&gt; Command
     (ViT m) (ArgMode CommandMode) (Either CommandMode InsertMode)
-&gt; Command
     (ViT m) (ArgMode CommandMode) (Either CommandMode InsertMode)
forall (m :: * -&gt; *) s t u.
Monad m =&gt;
Command m s t -&gt; Command m t u -&gt; Command m s u
</span><a href="System.Console.Haskeline.Command.html#%3E%7C%3E"><span class="hs-operator hs-var">&gt;|&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">Command
  (ViT m) (ArgMode CommandMode) (Either CommandMode InsertMode)
forall {m :: * -&gt; *}.
Monad m =&gt;
ArgMode CommandMode -&gt; CmdM (ViT m) (Either CommandMode InsertMode)
</span><a href="#local-6989586621679098821"><span class="hs-identifier hs-var">runLastCommand</span></a></span><span>
</span><span id="line-190"></span><span>                        </span><span class="hs-special">]</span><span>
</span><span id="line-191"></span><span>    </span><span class="hs-keyword">where</span><span>
</span><span id="line-192"></span><span>        </span><span id="local-6989586621679098821"><span class="annot"><span class="annottext">runLastCommand :: ArgMode CommandMode -&gt; CmdM (ViT m) (Either CommandMode InsertMode)
</span><a href="#local-6989586621679098821"><span class="hs-identifier hs-var hs-var">runLastCommand</span></a></span></span><span> </span><span id="local-6989586621679098805"><span class="annot"><span class="annottext">ArgMode CommandMode
</span><a href="#local-6989586621679098805"><span class="hs-identifier hs-var">s</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">(ViState m
 -&gt; ArgMode CommandMode
 -&gt; CmdM (ViT m) (Either CommandMode InsertMode))
-&gt; CmdM (ViT m) (ViState m)
-&gt; CmdM
     (ViT m)
     (ArgMode CommandMode
      -&gt; CmdM (ViT m) (Either CommandMode InsertMode))
forall (m :: * -&gt; *) a1 r. Monad m =&gt; (a1 -&gt; r) -&gt; m a1 -&gt; m r
</span><a href="../../base/src/GHC.Base.html#liftM"><span class="hs-identifier hs-var">liftM</span></a></span><span> </span><span class="annot"><span class="annottext">ViState m
-&gt; ArgMode CommandMode
-&gt; CmdM (ViT m) (Either CommandMode InsertMode)
forall (m :: * -&gt; *). ViState m -&gt; SavedCommand m
</span><a href="System.Console.Haskeline.Vi.html#lastCommand"><span class="hs-identifier hs-var hs-var">lastCommand</span></a></span><span> </span><span class="annot"><span class="annottext">CmdM (ViT m) (ViState m)
forall s (m :: * -&gt; *). MonadState s m =&gt; m s
</span><a href="System.Console.Haskeline.Monads.html#get"><span class="hs-identifier hs-var">get</span></a></span><span> </span><span class="annot"><span class="annottext">CmdM
  (ViT m)
  (ArgMode CommandMode
   -&gt; CmdM (ViT m) (Either CommandMode InsertMode))
-&gt; ((ArgMode CommandMode
     -&gt; CmdM (ViT m) (Either CommandMode InsertMode))
    -&gt; CmdM (ViT m) (Either CommandMode InsertMode))
-&gt; CmdM (ViT m) (Either CommandMode InsertMode)
forall (m :: * -&gt; *) a b. Monad m =&gt; m a -&gt; (a -&gt; m b) -&gt; m b
</span><a href="../../base/src/GHC.Base.html#%3E%3E%3D"><span class="hs-operator hs-var">&gt;&gt;=</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">(ArgMode CommandMode
 -&gt; CmdM (ViT m) (Either CommandMode InsertMode))
-&gt; ArgMode CommandMode
-&gt; CmdM (ViT m) (Either CommandMode InsertMode)
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="annot"><span class="annottext">ArgMode CommandMode
</span><a href="#local-6989586621679098805"><span class="hs-identifier hs-var">s</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-193"></span><span>
</span><span id="line-194"></span><span class="annot"><a href="System.Console.Haskeline.Vi.html#repeatableCmdMode"><span class="hs-identifier hs-type">repeatableCmdMode</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="System.Console.Haskeline.Vi.html#InputKeyCmd"><span class="hs-identifier hs-type">InputKeyCmd</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="System.Console.Haskeline.LineState.html#ArgMode"><span class="hs-identifier hs-type">ArgMode</span></a></span><span> </span><span class="annot"><a href="System.Console.Haskeline.LineState.html#CommandMode"><span class="hs-identifier hs-type">CommandMode</span></a></span><span class="hs-special">)</span><span> </span><span class="annot"><a href="System.Console.Haskeline.LineState.html#CommandMode"><span class="hs-identifier hs-type">CommandMode</span></a></span><span>
</span><span id="line-195"></span><span id="repeatableCmdMode"><span class="annot"><span class="annottext">repeatableCmdMode :: InputKeyCmd (ArgMode CommandMode) CommandMode
</span><a href="System.Console.Haskeline.Vi.html#repeatableCmdMode"><span class="hs-identifier hs-var hs-var">repeatableCmdMode</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">[KeyMap (Command (ViT m) (ArgMode CommandMode) CommandMode)]
-&gt; KeyMap (Command (ViT m) (ArgMode CommandMode) CommandMode)
forall a. [KeyMap a] -&gt; KeyMap a
</span><a href="System.Console.Haskeline.Command.html#choiceCmd"><span class="hs-identifier hs-var">choiceCmd</span></a></span><span>
</span><span id="line-196"></span><span>                    </span><span class="hs-special">[</span><span> </span><span class="annot"><span class="annottext">Char -&gt; Key
</span><a href="System.Console.Haskeline.Key.html#simpleChar"><span class="hs-identifier hs-var">simpleChar</span></a></span><span> </span><span class="annot"><span class="annottext">Char
</span><span class="hs-char">'x'</span></span><span> </span><span class="annot"><span class="annottext">Key
-&gt; Command (ViT m) (ArgMode CommandMode) CommandMode
-&gt; KeyMap (Command (ViT m) (ArgMode CommandMode) CommandMode)
forall a. Key -&gt; a -&gt; KeyMap a
</span><a href="System.Console.Haskeline.Command.html#%2B%3E"><span class="hs-operator hs-var">+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">(CommandMode -&gt; CommandMode)
-&gt; Command (ViT m) (ArgMode CommandMode) CommandMode
forall {m :: * -&gt; *}.
Monad m =&gt;
(CommandMode -&gt; CommandMode)
-&gt; Command (ViT m) (ArgMode CommandMode) CommandMode
</span><a href="#local-6989586621679098762"><span class="hs-identifier hs-var">repeatableChange</span></a></span><span> </span><span class="annot"><span class="annottext">CommandMode -&gt; CommandMode
</span><a href="System.Console.Haskeline.LineState.html#deleteChar"><span class="hs-identifier hs-var">deleteChar</span></a></span><span>
</span><span id="line-197"></span><span>                    </span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">Char -&gt; Key
</span><a href="System.Console.Haskeline.Key.html#simpleChar"><span class="hs-identifier hs-var">simpleChar</span></a></span><span> </span><span class="annot"><span class="annottext">Char
</span><span class="hs-char">'X'</span></span><span> </span><span class="annot"><span class="annottext">Key
-&gt; Command (ViT m) (ArgMode CommandMode) CommandMode
-&gt; KeyMap (Command (ViT m) (ArgMode CommandMode) CommandMode)
forall a. Key -&gt; a -&gt; KeyMap a
</span><a href="System.Console.Haskeline.Command.html#%2B%3E"><span class="hs-operator hs-var">+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">(CommandMode -&gt; CommandMode)
-&gt; Command (ViT m) (ArgMode CommandMode) CommandMode
forall {m :: * -&gt; *}.
Monad m =&gt;
(CommandMode -&gt; CommandMode)
-&gt; Command (ViT m) (ArgMode CommandMode) CommandMode
</span><a href="#local-6989586621679098762"><span class="hs-identifier hs-var">repeatableChange</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">(InsertMode -&gt; InsertMode) -&gt; CommandMode -&gt; CommandMode
</span><a href="System.Console.Haskeline.LineState.html#withCommandMode"><span class="hs-identifier hs-var">withCommandMode</span></a></span><span> </span><span class="annot"><span class="annottext">InsertMode -&gt; InsertMode
</span><a href="System.Console.Haskeline.LineState.html#deletePrev"><span class="hs-identifier hs-var">deletePrev</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-198"></span><span>                    </span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">Char -&gt; Key
</span><a href="System.Console.Haskeline.Key.html#simpleChar"><span class="hs-identifier hs-var">simpleChar</span></a></span><span> </span><span class="annot"><span class="annottext">Char
</span><span class="hs-char">'~'</span></span><span> </span><span class="annot"><span class="annottext">Key
-&gt; Command (ViT m) (ArgMode CommandMode) CommandMode
-&gt; KeyMap (Command (ViT m) (ArgMode CommandMode) CommandMode)
forall a. Key -&gt; a -&gt; KeyMap a
</span><a href="System.Console.Haskeline.Command.html#%2B%3E"><span class="hs-operator hs-var">+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">(CommandMode -&gt; CommandMode)
-&gt; Command (ViT m) (ArgMode CommandMode) CommandMode
forall {m :: * -&gt; *}.
Monad m =&gt;
(CommandMode -&gt; CommandMode)
-&gt; Command (ViT m) (ArgMode CommandMode) CommandMode
</span><a href="#local-6989586621679098762"><span class="hs-identifier hs-var">repeatableChange</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">CommandMode -&gt; CommandMode
forall s. Move s =&gt; s -&gt; s
</span><a href="System.Console.Haskeline.LineState.html#goRight"><span class="hs-identifier hs-var">goRight</span></a></span><span> </span><span class="annot"><span class="annottext">(CommandMode -&gt; CommandMode)
-&gt; (CommandMode -&gt; CommandMode) -&gt; CommandMode -&gt; CommandMode
forall b c a. (b -&gt; c) -&gt; (a -&gt; b) -&gt; a -&gt; c
</span><a href="../../base/src/GHC.Base.html#."><span class="hs-operator hs-var">.</span></a></span><span> </span><span class="annot"><span class="annottext">CommandMode -&gt; CommandMode
</span><a href="System.Console.Haskeline.Vi.html#flipCase"><span class="hs-identifier hs-var">flipCase</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-199"></span><span>                    </span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">Char -&gt; Key
</span><a href="System.Console.Haskeline.Key.html#simpleChar"><span class="hs-identifier hs-var">simpleChar</span></a></span><span> </span><span class="annot"><span class="annottext">Char
</span><span class="hs-char">'p'</span></span><span> </span><span class="annot"><span class="annottext">Key
-&gt; Command (ViT m) (ArgMode CommandMode) CommandMode
-&gt; KeyMap (Command (ViT m) (ArgMode CommandMode) CommandMode)
forall a. Key -&gt; a -&gt; KeyMap a
</span><a href="System.Console.Haskeline.Command.html#%2B%3E"><span class="hs-operator hs-var">+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">Command (ViT m) (ArgMode CommandMode) CommandMode
-&gt; Command (ViT m) (ArgMode CommandMode) CommandMode
forall (m :: * -&gt; *).
Monad m =&gt;
Command (ViT m) (ArgMode CommandMode) CommandMode
-&gt; Command (ViT m) (ArgMode CommandMode) CommandMode
</span><a href="System.Console.Haskeline.Vi.html#storedCmdAction"><span class="hs-identifier hs-var">storedCmdAction</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">([Grapheme] -&gt; CommandMode -&gt; CommandMode)
-&gt; Command (ViT m) (ArgMode CommandMode) CommandMode
forall s (m :: * -&gt; *).
(Save s, MonadState KillRing m, MonadState Undo m) =&gt;
([Grapheme] -&gt; s -&gt; s) -&gt; Command m (ArgMode s) s
</span><a href="System.Console.Haskeline.Command.KillRing.html#pasteCommand"><span class="hs-identifier hs-var">pasteCommand</span></a></span><span> </span><span class="annot"><span class="annottext">[Grapheme] -&gt; CommandMode -&gt; CommandMode
</span><a href="System.Console.Haskeline.LineState.html#pasteGraphemesAfter"><span class="hs-identifier hs-var">pasteGraphemesAfter</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-200"></span><span>                    </span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">Char -&gt; Key
</span><a href="System.Console.Haskeline.Key.html#simpleChar"><span class="hs-identifier hs-var">simpleChar</span></a></span><span> </span><span class="annot"><span class="annottext">Char
</span><span class="hs-char">'P'</span></span><span> </span><span class="annot"><span class="annottext">Key
-&gt; Command (ViT m) (ArgMode CommandMode) CommandMode
-&gt; KeyMap (Command (ViT m) (ArgMode CommandMode) CommandMode)
forall a. Key -&gt; a -&gt; KeyMap a
</span><a href="System.Console.Haskeline.Command.html#%2B%3E"><span class="hs-operator hs-var">+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">Command (ViT m) (ArgMode CommandMode) CommandMode
-&gt; Command (ViT m) (ArgMode CommandMode) CommandMode
forall (m :: * -&gt; *).
Monad m =&gt;
Command (ViT m) (ArgMode CommandMode) CommandMode
-&gt; Command (ViT m) (ArgMode CommandMode) CommandMode
</span><a href="System.Console.Haskeline.Vi.html#storedCmdAction"><span class="hs-identifier hs-var">storedCmdAction</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">([Grapheme] -&gt; CommandMode -&gt; CommandMode)
-&gt; Command (ViT m) (ArgMode CommandMode) CommandMode
forall s (m :: * -&gt; *).
(Save s, MonadState KillRing m, MonadState Undo m) =&gt;
([Grapheme] -&gt; s -&gt; s) -&gt; Command m (ArgMode s) s
</span><a href="System.Console.Haskeline.Command.KillRing.html#pasteCommand"><span class="hs-identifier hs-var">pasteCommand</span></a></span><span> </span><span class="annot"><span class="annottext">[Grapheme] -&gt; CommandMode -&gt; CommandMode
</span><a href="System.Console.Haskeline.LineState.html#pasteGraphemesBefore"><span class="hs-identifier hs-var">pasteGraphemesBefore</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-201"></span><span>                    </span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">Char -&gt; Key
</span><a href="System.Console.Haskeline.Key.html#simpleChar"><span class="hs-identifier hs-var">simpleChar</span></a></span><span> </span><span class="annot"><span class="annottext">Char
</span><span class="hs-char">'d'</span></span><span> </span><span class="annot"><span class="annottext">Key
-&gt; Command (ViT m) (ArgMode CommandMode) CommandMode
-&gt; KeyMap (Command (ViT m) (ArgMode CommandMode) CommandMode)
forall a. Key -&gt; a -&gt; KeyMap a
</span><a href="System.Console.Haskeline.Command.html#%2B%3E"><span class="hs-operator hs-var">+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">Command (ViT m) (ArgMode CommandMode) CommandMode
InputCmd (ArgMode CommandMode) CommandMode
</span><a href="System.Console.Haskeline.Vi.html#deletionCmd"><span class="hs-identifier hs-var">deletionCmd</span></a></span><span>
</span><span id="line-202"></span><span>                    </span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">Char -&gt; Key
</span><a href="System.Console.Haskeline.Key.html#simpleChar"><span class="hs-identifier hs-var">simpleChar</span></a></span><span> </span><span class="annot"><span class="annottext">Char
</span><span class="hs-char">'y'</span></span><span> </span><span class="annot"><span class="annottext">Key
-&gt; Command (ViT m) (ArgMode CommandMode) CommandMode
-&gt; KeyMap (Command (ViT m) (ArgMode CommandMode) CommandMode)
forall a. Key -&gt; a -&gt; KeyMap a
</span><a href="System.Console.Haskeline.Command.html#%2B%3E"><span class="hs-operator hs-var">+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">Command (ViT m) (ArgMode CommandMode) CommandMode
InputCmd (ArgMode CommandMode) CommandMode
</span><a href="System.Console.Haskeline.Vi.html#yankCommand"><span class="hs-identifier hs-var">yankCommand</span></a></span><span>
</span><span id="line-203"></span><span>                    </span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">Char -&gt; Key
</span><a href="System.Console.Haskeline.Key.html#ctrlChar"><span class="hs-identifier hs-var">ctrlChar</span></a></span><span> </span><span class="annot"><span class="annottext">Char
</span><span class="hs-char">'w'</span></span><span> </span><span class="annot"><span class="annottext">Key
-&gt; Command (ViT m) (ArgMode CommandMode) CommandMode
-&gt; KeyMap (Command (ViT m) (ArgMode CommandMode) CommandMode)
forall a. Key -&gt; a -&gt; KeyMap a
</span><a href="System.Console.Haskeline.Command.html#%2B%3E"><span class="hs-operator hs-var">+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">KillHelper -&gt; Command (ViT m) (ArgMode CommandMode) CommandMode
forall (m :: * -&gt; *).
MonadIO m =&gt;
KillHelper -&gt; Command (ViT m) (ArgMode CommandMode) CommandMode
</span><a href="System.Console.Haskeline.Vi.html#killAndStoreCmd"><span class="hs-identifier hs-var">killAndStoreCmd</span></a></span><span> </span><span class="annot"><span class="annottext">KillHelper
</span><a href="System.Console.Haskeline.Vi.html#wordErase"><span class="hs-identifier hs-var">wordErase</span></a></span><span>
</span><span id="line-204"></span><span>                    </span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">KeyMap (Command (ViT m) (ArgMode CommandMode) CommandMode)
InputKeyCmd (ArgMode CommandMode) CommandMode
</span><a href="System.Console.Haskeline.Vi.html#pureMovements"><span class="hs-identifier hs-var">pureMovements</span></a></span><span>
</span><span id="line-205"></span><span>                    </span><span class="hs-special">]</span><span>
</span><span id="line-206"></span><span>    </span><span class="hs-keyword">where</span><span>
</span><span id="line-207"></span><span>        </span><span id="local-6989586621679098762"><span class="annot"><span class="annottext">repeatableChange :: (CommandMode -&gt; CommandMode)
-&gt; Command (ViT m) (ArgMode CommandMode) CommandMode
</span><a href="#local-6989586621679098762"><span class="hs-identifier hs-var hs-var">repeatableChange</span></a></span></span><span> </span><span id="local-6989586621679098736"><span class="annot"><span class="annottext">CommandMode -&gt; CommandMode
</span><a href="#local-6989586621679098736"><span class="hs-identifier hs-var">f</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Command (ViT m) (ArgMode CommandMode) CommandMode
-&gt; Command (ViT m) (ArgMode CommandMode) CommandMode
forall (m :: * -&gt; *).
Monad m =&gt;
Command (ViT m) (ArgMode CommandMode) CommandMode
-&gt; Command (ViT m) (ArgMode CommandMode) CommandMode
</span><a href="System.Console.Haskeline.Vi.html#storedCmdAction"><span class="hs-identifier hs-var">storedCmdAction</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Command (ViT m) (ArgMode CommandMode) (ArgMode CommandMode)
forall s (m :: * -&gt; *).
(Save s, MonadState Undo m) =&gt;
Command m s s
</span><a href="System.Console.Haskeline.Command.Undo.html#saveForUndo"><span class="hs-identifier hs-var">saveForUndo</span></a></span><span> </span><span class="annot"><span class="annottext">Command (ViT m) (ArgMode CommandMode) (ArgMode CommandMode)
-&gt; Command (ViT m) (ArgMode CommandMode) CommandMode
-&gt; Command (ViT m) (ArgMode CommandMode) CommandMode
forall (m :: * -&gt; *) s t u.
Monad m =&gt;
Command m s t -&gt; Command m t u -&gt; Command m s u
</span><a href="System.Console.Haskeline.Command.html#%3E%7C%3E"><span class="hs-operator hs-var">&gt;|&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">(ArgMode CommandMode -&gt; CommandMode)
-&gt; Command (ViT m) (ArgMode CommandMode) CommandMode
forall t (m :: * -&gt; *) s.
(LineState t, Monad m) =&gt;
(s -&gt; t) -&gt; Command m s t
</span><a href="System.Console.Haskeline.Command.html#change"><span class="hs-identifier hs-var">change</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">(CommandMode -&gt; CommandMode) -&gt; ArgMode CommandMode -&gt; CommandMode
forall s. (s -&gt; s) -&gt; ArgMode s -&gt; s
</span><a href="System.Console.Haskeline.LineState.html#applyArg"><span class="hs-identifier hs-var">applyArg</span></a></span><span> </span><span class="annot"><span class="annottext">CommandMode -&gt; CommandMode
</span><a href="#local-6989586621679098736"><span class="hs-identifier hs-var">f</span></a></span><span class="hs-special">)</span><span class="hs-special">)</span><span>
</span><span id="line-208"></span><span>
</span><span id="line-209"></span><span class="annot"><a href="System.Console.Haskeline.Vi.html#flipCase"><span class="hs-identifier hs-type">flipCase</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="System.Console.Haskeline.LineState.html#CommandMode"><span class="hs-identifier hs-type">CommandMode</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="System.Console.Haskeline.LineState.html#CommandMode"><span class="hs-identifier hs-type">CommandMode</span></a></span><span>
</span><span id="line-210"></span><span id="flipCase"><span class="annot"><span class="annottext">flipCase :: CommandMode -&gt; CommandMode
</span><a href="System.Console.Haskeline.Vi.html#flipCase"><span class="hs-identifier hs-var hs-var">flipCase</span></a></span></span><span> </span><span class="annot"><span class="annottext">CommandMode
</span><a href="System.Console.Haskeline.LineState.html#CEmpty"><span class="hs-identifier hs-var">CEmpty</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">CommandMode
</span><a href="System.Console.Haskeline.LineState.html#CEmpty"><span class="hs-identifier hs-var">CEmpty</span></a></span><span>
</span><span id="line-211"></span><span class="annot"><a href="System.Console.Haskeline.Vi.html#flipCase"><span class="hs-identifier hs-var">flipCase</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="System.Console.Haskeline.LineState.html#CMode"><span class="hs-identifier hs-type">CMode</span></a></span><span> </span><span id="local-6989586621679098733"><span class="annot"><span class="annottext">[Grapheme]
</span><a href="#local-6989586621679098733"><span class="hs-identifier hs-var">xs</span></a></span></span><span> </span><span id="local-6989586621679098732"><span class="annot"><span class="annottext">Grapheme
</span><a href="#local-6989586621679098732"><span class="hs-identifier hs-var">y</span></a></span></span><span> </span><span id="local-6989586621679098731"><span class="annot"><span class="annottext">[Grapheme]
</span><a href="#local-6989586621679098731"><span class="hs-identifier hs-var">zs</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">[Grapheme] -&gt; Grapheme -&gt; [Grapheme] -&gt; CommandMode
</span><a href="System.Console.Haskeline.LineState.html#CMode"><span class="hs-identifier hs-var">CMode</span></a></span><span> </span><span class="annot"><span class="annottext">[Grapheme]
</span><a href="#local-6989586621679098733"><span class="hs-identifier hs-var">xs</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">(Char -&gt; Char) -&gt; Grapheme -&gt; Grapheme
</span><a href="System.Console.Haskeline.LineState.html#modifyBaseChar"><span class="hs-identifier hs-var">modifyBaseChar</span></a></span><span> </span><span class="annot"><span class="annottext">Char -&gt; Char
</span><a href="#local-6989586621679098729"><span class="hs-identifier hs-var">flipCaseG</span></a></span><span> </span><span class="annot"><span class="annottext">Grapheme
</span><a href="#local-6989586621679098732"><span class="hs-identifier hs-var">y</span></a></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">[Grapheme]
</span><a href="#local-6989586621679098731"><span class="hs-identifier hs-var">zs</span></a></span><span>
</span><span id="line-212"></span><span>    </span><span class="hs-keyword">where</span><span>
</span><span id="line-213"></span><span>        </span><span id="local-6989586621679098729"><span class="annot"><span class="annottext">flipCaseG :: Char -&gt; Char
</span><a href="#local-6989586621679098729"><span class="hs-identifier hs-var hs-var">flipCaseG</span></a></span></span><span> </span><span id="local-6989586621679098728"><span class="annot"><span class="annottext">Char
</span><a href="#local-6989586621679098728"><span class="hs-identifier hs-var">c</span></a></span></span><span> </span><span class="hs-glyph">|</span><span> </span><span class="annot"><span class="annottext">Char -&gt; Bool
</span><a href="../../base/src/GHC.Unicode.html#isLower"><span class="hs-identifier hs-var">isLower</span></a></span><span> </span><span class="annot"><span class="annottext">Char
</span><a href="#local-6989586621679098728"><span class="hs-identifier hs-var">c</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Char -&gt; Char
</span><a href="../../base/src/GHC.Unicode.html#toUpper"><span class="hs-identifier hs-var">toUpper</span></a></span><span> </span><span class="annot"><span class="annottext">Char
</span><a href="#local-6989586621679098728"><span class="hs-identifier hs-var">c</span></a></span><span>
</span><span id="line-214"></span><span>                    </span><span class="hs-glyph">|</span><span> </span><span class="annot"><span class="annottext">Bool
</span><a href="../../base/src/GHC.Base.html#otherwise"><span class="hs-identifier hs-var">otherwise</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Char -&gt; Char
</span><a href="../../base/src/GHC.Unicode.html#toLower"><span class="hs-identifier hs-var">toLower</span></a></span><span> </span><span class="annot"><span class="annottext">Char
</span><a href="#local-6989586621679098728"><span class="hs-identifier hs-var">c</span></a></span><span>
</span><span id="line-215"></span><span>
</span><span id="line-216"></span><span class="annot"><a href="System.Console.Haskeline.Vi.html#repeatableCmdToIMode"><span class="hs-identifier hs-type">repeatableCmdToIMode</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="System.Console.Haskeline.Vi.html#InputKeyCmd"><span class="hs-identifier hs-type">InputKeyCmd</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="System.Console.Haskeline.LineState.html#ArgMode"><span class="hs-identifier hs-type">ArgMode</span></a></span><span> </span><span class="annot"><a href="System.Console.Haskeline.LineState.html#CommandMode"><span class="hs-identifier hs-type">CommandMode</span></a></span><span class="hs-special">)</span><span> </span><span class="annot"><a href="System.Console.Haskeline.Vi.html#EitherMode"><span class="hs-identifier hs-type">EitherMode</span></a></span><span>
</span><span id="line-217"></span><span id="repeatableCmdToIMode"><span class="annot"><span class="annottext">repeatableCmdToIMode :: InputKeyCmd (ArgMode CommandMode) (Either CommandMode InsertMode)
</span><a href="System.Console.Haskeline.Vi.html#repeatableCmdToIMode"><span class="hs-identifier hs-var hs-var">repeatableCmdToIMode</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Char -&gt; Key
</span><a href="System.Console.Haskeline.Key.html#simpleChar"><span class="hs-identifier hs-var">simpleChar</span></a></span><span> </span><span class="annot"><span class="annottext">Char
</span><span class="hs-char">'c'</span></span><span> </span><span class="annot"><span class="annottext">Key
-&gt; Command
     (ViT m) (ArgMode CommandMode) (Either CommandMode InsertMode)
-&gt; KeyMap
     (Command
        (ViT m) (ArgMode CommandMode) (Either CommandMode InsertMode))
forall a. Key -&gt; a -&gt; KeyMap a
</span><a href="System.Console.Haskeline.Command.html#%2B%3E"><span class="hs-operator hs-var">+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">Command
  (ViT m) (ArgMode CommandMode) (Either CommandMode InsertMode)
InputCmd (ArgMode CommandMode) (Either CommandMode InsertMode)
</span><a href="System.Console.Haskeline.Vi.html#deletionToInsertCmd"><span class="hs-identifier hs-var">deletionToInsertCmd</span></a></span><span>
</span><span id="line-218"></span><span>
</span><span id="line-219"></span><span class="annot"><a href="System.Console.Haskeline.Vi.html#deletionCmd"><span class="hs-identifier hs-type">deletionCmd</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="System.Console.Haskeline.Vi.html#InputCmd"><span class="hs-identifier hs-type">InputCmd</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="System.Console.Haskeline.LineState.html#ArgMode"><span class="hs-identifier hs-type">ArgMode</span></a></span><span> </span><span class="annot"><a href="System.Console.Haskeline.LineState.html#CommandMode"><span class="hs-identifier hs-type">CommandMode</span></a></span><span class="hs-special">)</span><span> </span><span class="annot"><a href="System.Console.Haskeline.LineState.html#CommandMode"><span class="hs-identifier hs-type">CommandMode</span></a></span><span>
</span><span id="line-220"></span><span id="deletionCmd"><span class="annot"><span class="annottext">deletionCmd :: InputCmd (ArgMode CommandMode) CommandMode
</span><a href="System.Console.Haskeline.Vi.html#deletionCmd"><span class="hs-identifier hs-var hs-var">deletionCmd</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">[KeyCommand (ViT m) (ArgMode CommandMode) CommandMode]
-&gt; Command (ViT m) (ArgMode CommandMode) CommandMode
forall (m :: * -&gt; *) s t. [KeyCommand m s t] -&gt; Command m s t
</span><a href="System.Console.Haskeline.Command.html#keyChoiceCmd"><span class="hs-identifier hs-var">keyChoiceCmd</span></a></span><span>
</span><span id="line-221"></span><span>                    </span><span class="hs-special">[</span><span> </span><span class="annot"><span class="annottext">KeyCommand (ViT m) (ArgMode CommandMode) (ArgMode CommandMode)
forall s. LineState s =&gt; InputKeyCmd (ArgMode s) (ArgMode s)
</span><a href="System.Console.Haskeline.Vi.html#reinputArg"><span class="hs-identifier hs-var">reinputArg</span></a></span><span> </span><span class="annot"><span class="annottext">KeyCommand (ViT m) (ArgMode CommandMode) (ArgMode CommandMode)
-&gt; Command (ViT m) (ArgMode CommandMode) CommandMode
-&gt; KeyCommand (ViT m) (ArgMode CommandMode) CommandMode
forall (m :: * -&gt; *) s t u.
Monad m =&gt;
KeyCommand m s t -&gt; Command m t u -&gt; KeyCommand m s u
</span><a href="System.Console.Haskeline.Command.html#%3E%2B%3E"><span class="hs-operator hs-var">&gt;+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">Command (ViT m) (ArgMode CommandMode) CommandMode
InputCmd (ArgMode CommandMode) CommandMode
</span><a href="System.Console.Haskeline.Vi.html#deletionCmd"><span class="hs-identifier hs-var">deletionCmd</span></a></span><span>
</span><span id="line-222"></span><span>                    </span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">Char -&gt; Key
</span><a href="System.Console.Haskeline.Key.html#simpleChar"><span class="hs-identifier hs-var">simpleChar</span></a></span><span> </span><span class="annot"><span class="annottext">Char
</span><span class="hs-char">'d'</span></span><span> </span><span class="annot"><span class="annottext">Key
-&gt; Command (ViT m) (ArgMode CommandMode) CommandMode
-&gt; KeyCommand (ViT m) (ArgMode CommandMode) CommandMode
forall a. Key -&gt; a -&gt; KeyMap a
</span><a href="System.Console.Haskeline.Command.html#%2B%3E"><span class="hs-operator hs-var">+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">KillHelper -&gt; Command (ViT m) (ArgMode CommandMode) CommandMode
forall (m :: * -&gt; *).
MonadIO m =&gt;
KillHelper -&gt; Command (ViT m) (ArgMode CommandMode) CommandMode
</span><a href="System.Console.Haskeline.Vi.html#killAndStoreCmd"><span class="hs-identifier hs-var">killAndStoreCmd</span></a></span><span> </span><span class="annot"><span class="annottext">KillHelper
</span><a href="System.Console.Haskeline.Command.KillRing.html#killAll"><span class="hs-identifier hs-var">killAll</span></a></span><span>
</span><span id="line-223"></span><span>                    </span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">Command (ViT m) (ArgMode CommandMode) CommandMode
-&gt; (KillHelper
    -&gt; Command (ViT m) (ArgMode CommandMode) CommandMode)
-&gt; KeyCommand (ViT m) (ArgMode CommandMode) CommandMode
forall (m :: * -&gt; *) s t.
Command m s t -&gt; (KillHelper -&gt; Command m s t) -&gt; KeyCommand m s t
</span><a href="System.Console.Haskeline.Vi.html#useMovementsForKill"><span class="hs-identifier hs-var">useMovementsForKill</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">(ArgMode CommandMode -&gt; CommandMode)
-&gt; Command (ViT m) (ArgMode CommandMode) CommandMode
forall t (m :: * -&gt; *) s.
(LineState t, Monad m) =&gt;
(s -&gt; t) -&gt; Command m s t
</span><a href="System.Console.Haskeline.Command.html#change"><span class="hs-identifier hs-var">change</span></a></span><span> </span><span class="annot"><span class="annottext">ArgMode CommandMode -&gt; CommandMode
forall s. ArgMode s -&gt; s
</span><a href="System.Console.Haskeline.LineState.html#argState"><span class="hs-identifier hs-var hs-var">argState</span></a></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">KillHelper -&gt; Command (ViT m) (ArgMode CommandMode) CommandMode
forall (m :: * -&gt; *).
MonadIO m =&gt;
KillHelper -&gt; Command (ViT m) (ArgMode CommandMode) CommandMode
</span><a href="System.Console.Haskeline.Vi.html#killAndStoreCmd"><span class="hs-identifier hs-var">killAndStoreCmd</span></a></span><span>
</span><span id="line-224"></span><span>                    </span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">Command (ViT m) (ArgMode CommandMode) CommandMode
-&gt; KeyCommand (ViT m) (ArgMode CommandMode) CommandMode
forall (m :: * -&gt; *) s t. Command m s t -&gt; KeyCommand m s t
</span><a href="System.Console.Haskeline.Command.html#withoutConsuming"><span class="hs-identifier hs-var">withoutConsuming</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">(ArgMode CommandMode -&gt; CommandMode)
-&gt; Command (ViT m) (ArgMode CommandMode) CommandMode
forall t (m :: * -&gt; *) s.
(LineState t, Monad m) =&gt;
(s -&gt; t) -&gt; Command m s t
</span><a href="System.Console.Haskeline.Command.html#change"><span class="hs-identifier hs-var">change</span></a></span><span> </span><span class="annot"><span class="annottext">ArgMode CommandMode -&gt; CommandMode
forall s. ArgMode s -&gt; s
</span><a href="System.Console.Haskeline.LineState.html#argState"><span class="hs-identifier hs-var hs-var">argState</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-225"></span><span>                    </span><span class="hs-special">]</span><span>
</span><span id="line-226"></span><span>
</span><span id="line-227"></span><span class="annot"><a href="System.Console.Haskeline.Vi.html#deletionToInsertCmd"><span class="hs-identifier hs-type">deletionToInsertCmd</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="System.Console.Haskeline.Vi.html#InputCmd"><span class="hs-identifier hs-type">InputCmd</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="System.Console.Haskeline.LineState.html#ArgMode"><span class="hs-identifier hs-type">ArgMode</span></a></span><span> </span><span class="annot"><a href="System.Console.Haskeline.LineState.html#CommandMode"><span class="hs-identifier hs-type">CommandMode</span></a></span><span class="hs-special">)</span><span> </span><span class="annot"><a href="System.Console.Haskeline.Vi.html#EitherMode"><span class="hs-identifier hs-type">EitherMode</span></a></span><span>
</span><span id="line-228"></span><span id="deletionToInsertCmd"><span class="annot"><span class="annottext">deletionToInsertCmd :: InputCmd (ArgMode CommandMode) (Either CommandMode InsertMode)
</span><a href="System.Console.Haskeline.Vi.html#deletionToInsertCmd"><span class="hs-identifier hs-var hs-var">deletionToInsertCmd</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">[KeyCommand
   (ViT m) (ArgMode CommandMode) (Either CommandMode InsertMode)]
-&gt; Command
     (ViT m) (ArgMode CommandMode) (Either CommandMode InsertMode)
forall (m :: * -&gt; *) s t. [KeyCommand m s t] -&gt; Command m s t
</span><a href="System.Console.Haskeline.Command.html#keyChoiceCmd"><span class="hs-identifier hs-var">keyChoiceCmd</span></a></span><span>
</span><span id="line-229"></span><span>        </span><span class="hs-special">[</span><span> </span><span class="annot"><span class="annottext">KeyCommand (ViT m) (ArgMode CommandMode) (ArgMode CommandMode)
forall s. LineState s =&gt; InputKeyCmd (ArgMode s) (ArgMode s)
</span><a href="System.Console.Haskeline.Vi.html#reinputArg"><span class="hs-identifier hs-var">reinputArg</span></a></span><span> </span><span class="annot"><span class="annottext">KeyCommand (ViT m) (ArgMode CommandMode) (ArgMode CommandMode)
-&gt; Command
     (ViT m) (ArgMode CommandMode) (Either CommandMode InsertMode)
-&gt; KeyCommand
     (ViT m) (ArgMode CommandMode) (Either CommandMode InsertMode)
forall (m :: * -&gt; *) s t u.
Monad m =&gt;
KeyCommand m s t -&gt; Command m t u -&gt; KeyCommand m s u
</span><a href="System.Console.Haskeline.Command.html#%3E%2B%3E"><span class="hs-operator hs-var">&gt;+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">Command
  (ViT m) (ArgMode CommandMode) (Either CommandMode InsertMode)
InputCmd (ArgMode CommandMode) (Either CommandMode InsertMode)
</span><a href="System.Console.Haskeline.Vi.html#deletionToInsertCmd"><span class="hs-identifier hs-var">deletionToInsertCmd</span></a></span><span>
</span><span id="line-230"></span><span>        </span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">Char -&gt; Key
</span><a href="System.Console.Haskeline.Key.html#simpleChar"><span class="hs-identifier hs-var">simpleChar</span></a></span><span> </span><span class="annot"><span class="annottext">Char
</span><span class="hs-char">'c'</span></span><span> </span><span class="annot"><span class="annottext">Key
-&gt; Command
     (ViT m) (ArgMode CommandMode) (Either CommandMode InsertMode)
-&gt; KeyCommand
     (ViT m) (ArgMode CommandMode) (Either CommandMode InsertMode)
forall a. Key -&gt; a -&gt; KeyMap a
</span><a href="System.Console.Haskeline.Command.html#%2B%3E"><span class="hs-operator hs-var">+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">KillHelper
-&gt; Command
     (ViT m) (ArgMode CommandMode) (Either CommandMode InsertMode)
forall (m :: * -&gt; *).
MonadIO m =&gt;
KillHelper
-&gt; Command
     (ViT m) (ArgMode CommandMode) (Either CommandMode InsertMode)
</span><a href="System.Console.Haskeline.Vi.html#killAndStoreIE"><span class="hs-identifier hs-var">killAndStoreIE</span></a></span><span> </span><span class="annot"><span class="annottext">KillHelper
</span><a href="System.Console.Haskeline.Command.KillRing.html#killAll"><span class="hs-identifier hs-var">killAll</span></a></span><span>
</span><span id="line-231"></span><span>        </span><span class="hs-comment">-- vim, for whatever reason, treats cw same as ce and cW same as cE.</span><span>
</span><span id="line-232"></span><span>        </span><span class="hs-comment">-- readline does this too, so we should also.</span><span>
</span><span id="line-233"></span><span>        </span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">Char -&gt; Key
</span><a href="System.Console.Haskeline.Key.html#simpleChar"><span class="hs-identifier hs-var">simpleChar</span></a></span><span> </span><span class="annot"><span class="annottext">Char
</span><span class="hs-char">'w'</span></span><span> </span><span class="annot"><span class="annottext">Key
-&gt; Command
     (ViT m) (ArgMode CommandMode) (Either CommandMode InsertMode)
-&gt; KeyCommand
     (ViT m) (ArgMode CommandMode) (Either CommandMode InsertMode)
forall a. Key -&gt; a -&gt; KeyMap a
</span><a href="System.Console.Haskeline.Command.html#%2B%3E"><span class="hs-operator hs-var">+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">KillHelper
-&gt; Command
     (ViT m) (ArgMode CommandMode) (Either CommandMode InsertMode)
forall (m :: * -&gt; *).
MonadIO m =&gt;
KillHelper
-&gt; Command
     (ViT m) (ArgMode CommandMode) (Either CommandMode InsertMode)
</span><a href="System.Console.Haskeline.Vi.html#killAndStoreIE"><span class="hs-identifier hs-var">killAndStoreIE</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">(InsertMode -&gt; InsertMode) -&gt; KillHelper
</span><a href="System.Console.Haskeline.Command.KillRing.html#SimpleMove"><span class="hs-identifier hs-var">SimpleMove</span></a></span><span> </span><span class="annot"><span class="annottext">InsertMode -&gt; InsertMode
</span><a href="System.Console.Haskeline.Vi.html#goToWordDelEnd"><span class="hs-identifier hs-var">goToWordDelEnd</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-234"></span><span>        </span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">Char -&gt; Key
</span><a href="System.Console.Haskeline.Key.html#simpleChar"><span class="hs-identifier hs-var">simpleChar</span></a></span><span> </span><span class="annot"><span class="annottext">Char
</span><span class="hs-char">'W'</span></span><span> </span><span class="annot"><span class="annottext">Key
-&gt; Command
     (ViT m) (ArgMode CommandMode) (Either CommandMode InsertMode)
-&gt; KeyCommand
     (ViT m) (ArgMode CommandMode) (Either CommandMode InsertMode)
forall a. Key -&gt; a -&gt; KeyMap a
</span><a href="System.Console.Haskeline.Command.html#%2B%3E"><span class="hs-operator hs-var">+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">KillHelper
-&gt; Command
     (ViT m) (ArgMode CommandMode) (Either CommandMode InsertMode)
forall (m :: * -&gt; *).
MonadIO m =&gt;
KillHelper
-&gt; Command
     (ViT m) (ArgMode CommandMode) (Either CommandMode InsertMode)
</span><a href="System.Console.Haskeline.Vi.html#killAndStoreIE"><span class="hs-identifier hs-var">killAndStoreIE</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">(InsertMode -&gt; InsertMode) -&gt; KillHelper
</span><a href="System.Console.Haskeline.Command.KillRing.html#SimpleMove"><span class="hs-identifier hs-var">SimpleMove</span></a></span><span> </span><span class="annot"><span class="annottext">InsertMode -&gt; InsertMode
</span><a href="System.Console.Haskeline.Vi.html#goToBigWordDelEnd"><span class="hs-identifier hs-var">goToBigWordDelEnd</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-235"></span><span>        </span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">Command
  (ViT m) (ArgMode CommandMode) (Either CommandMode InsertMode)
-&gt; (KillHelper
    -&gt; Command
         (ViT m) (ArgMode CommandMode) (Either CommandMode InsertMode))
-&gt; KeyCommand
     (ViT m) (ArgMode CommandMode) (Either CommandMode InsertMode)
forall (m :: * -&gt; *) s t.
Command m s t -&gt; (KillHelper -&gt; Command m s t) -&gt; KeyCommand m s t
</span><a href="System.Console.Haskeline.Vi.html#useMovementsForKill"><span class="hs-identifier hs-var">useMovementsForKill</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">(CommandMode -&gt; Either CommandMode InsertMode)
-&gt; CmdM (ViT m) CommandMode
-&gt; CmdM (ViT m) (Either CommandMode InsertMode)
forall (m :: * -&gt; *) a1 r. Monad m =&gt; (a1 -&gt; r) -&gt; m a1 -&gt; m r
</span><a href="../../base/src/GHC.Base.html#liftM"><span class="hs-identifier hs-var">liftM</span></a></span><span> </span><span class="annot"><span class="annottext">CommandMode -&gt; Either CommandMode InsertMode
forall a b. a -&gt; Either a b
</span><a href="../../base/src/Data.Either.html#Left"><span class="hs-identifier hs-var">Left</span></a></span><span> </span><span class="annot"><span class="annottext">(CmdM (ViT m) CommandMode
 -&gt; CmdM (ViT m) (Either CommandMode InsertMode))
-&gt; (ArgMode CommandMode -&gt; CmdM (ViT m) CommandMode)
-&gt; Command
     (ViT m) (ArgMode CommandMode) (Either CommandMode InsertMode)
forall b c a. (b -&gt; c) -&gt; (a -&gt; b) -&gt; a -&gt; c
</span><a href="../../base/src/GHC.Base.html#."><span class="hs-operator hs-var">.</span></a></span><span> </span><span class="annot"><span class="annottext">(ArgMode CommandMode -&gt; CommandMode)
-&gt; ArgMode CommandMode -&gt; CmdM (ViT m) CommandMode
forall t (m :: * -&gt; *) s.
(LineState t, Monad m) =&gt;
(s -&gt; t) -&gt; Command m s t
</span><a href="System.Console.Haskeline.Command.html#change"><span class="hs-identifier hs-var">change</span></a></span><span> </span><span class="annot"><span class="annottext">ArgMode CommandMode -&gt; CommandMode
forall s. ArgMode s -&gt; s
</span><a href="System.Console.Haskeline.LineState.html#argState"><span class="hs-identifier hs-var hs-var">argState</span></a></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">KillHelper
-&gt; Command
     (ViT m) (ArgMode CommandMode) (Either CommandMode InsertMode)
forall (m :: * -&gt; *).
MonadIO m =&gt;
KillHelper
-&gt; Command
     (ViT m) (ArgMode CommandMode) (Either CommandMode InsertMode)
</span><a href="System.Console.Haskeline.Vi.html#killAndStoreIE"><span class="hs-identifier hs-var">killAndStoreIE</span></a></span><span>
</span><span id="line-236"></span><span>        </span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">Command
  (ViT m) (ArgMode CommandMode) (Either CommandMode InsertMode)
-&gt; KeyCommand
     (ViT m) (ArgMode CommandMode) (Either CommandMode InsertMode)
forall (m :: * -&gt; *) s t. Command m s t -&gt; KeyCommand m s t
</span><a href="System.Console.Haskeline.Command.html#withoutConsuming"><span class="hs-identifier hs-var">withoutConsuming</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Either CommandMode InsertMode
-&gt; CmdM (ViT m) (Either CommandMode InsertMode)
forall (m :: * -&gt; *) a. Monad m =&gt; a -&gt; m a
</span><a href="../../base/src/GHC.Base.html#return"><span class="hs-identifier hs-var">return</span></a></span><span> </span><span class="annot"><span class="annottext">(Either CommandMode InsertMode
 -&gt; CmdM (ViT m) (Either CommandMode InsertMode))
-&gt; (ArgMode CommandMode -&gt; Either CommandMode InsertMode)
-&gt; Command
     (ViT m) (ArgMode CommandMode) (Either CommandMode InsertMode)
forall b c a. (b -&gt; c) -&gt; (a -&gt; b) -&gt; a -&gt; c
</span><a href="../../base/src/GHC.Base.html#."><span class="hs-operator hs-var">.</span></a></span><span> </span><span class="annot"><span class="annottext">CommandMode -&gt; Either CommandMode InsertMode
forall a b. a -&gt; Either a b
</span><a href="../../base/src/Data.Either.html#Left"><span class="hs-identifier hs-var">Left</span></a></span><span> </span><span class="annot"><span class="annottext">(CommandMode -&gt; Either CommandMode InsertMode)
-&gt; (ArgMode CommandMode -&gt; CommandMode)
-&gt; ArgMode CommandMode
-&gt; Either CommandMode InsertMode
forall b c a. (b -&gt; c) -&gt; (a -&gt; b) -&gt; a -&gt; c
</span><a href="../../base/src/GHC.Base.html#."><span class="hs-operator hs-var">.</span></a></span><span> </span><span class="annot"><span class="annottext">ArgMode CommandMode -&gt; CommandMode
forall s. ArgMode s -&gt; s
</span><a href="System.Console.Haskeline.LineState.html#argState"><span class="hs-identifier hs-var hs-var">argState</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-237"></span><span>        </span><span class="hs-special">]</span><span>
</span><span id="line-238"></span><span>
</span><span id="line-239"></span><span>
</span><span id="line-240"></span><span class="annot"><a href="System.Console.Haskeline.Vi.html#yankCommand"><span class="hs-identifier hs-type">yankCommand</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="System.Console.Haskeline.Vi.html#InputCmd"><span class="hs-identifier hs-type">InputCmd</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="System.Console.Haskeline.LineState.html#ArgMode"><span class="hs-identifier hs-type">ArgMode</span></a></span><span> </span><span class="annot"><a href="System.Console.Haskeline.LineState.html#CommandMode"><span class="hs-identifier hs-type">CommandMode</span></a></span><span class="hs-special">)</span><span> </span><span class="annot"><a href="System.Console.Haskeline.LineState.html#CommandMode"><span class="hs-identifier hs-type">CommandMode</span></a></span><span>
</span><span id="line-241"></span><span id="yankCommand"><span class="annot"><span class="annottext">yankCommand :: InputCmd (ArgMode CommandMode) CommandMode
</span><a href="System.Console.Haskeline.Vi.html#yankCommand"><span class="hs-identifier hs-var hs-var">yankCommand</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">[KeyCommand (ViT m) (ArgMode CommandMode) CommandMode]
-&gt; Command (ViT m) (ArgMode CommandMode) CommandMode
forall (m :: * -&gt; *) s t. [KeyCommand m s t] -&gt; Command m s t
</span><a href="System.Console.Haskeline.Command.html#keyChoiceCmd"><span class="hs-identifier hs-var">keyChoiceCmd</span></a></span><span>
</span><span id="line-242"></span><span>                </span><span class="hs-special">[</span><span> </span><span class="annot"><span class="annottext">KeyCommand (ViT m) (ArgMode CommandMode) (ArgMode CommandMode)
forall s. LineState s =&gt; InputKeyCmd (ArgMode s) (ArgMode s)
</span><a href="System.Console.Haskeline.Vi.html#reinputArg"><span class="hs-identifier hs-var">reinputArg</span></a></span><span> </span><span class="annot"><span class="annottext">KeyCommand (ViT m) (ArgMode CommandMode) (ArgMode CommandMode)
-&gt; Command (ViT m) (ArgMode CommandMode) CommandMode
-&gt; KeyCommand (ViT m) (ArgMode CommandMode) CommandMode
forall (m :: * -&gt; *) s t u.
Monad m =&gt;
KeyCommand m s t -&gt; Command m t u -&gt; KeyCommand m s u
</span><a href="System.Console.Haskeline.Command.html#%3E%2B%3E"><span class="hs-operator hs-var">&gt;+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">Command (ViT m) (ArgMode CommandMode) CommandMode
InputCmd (ArgMode CommandMode) CommandMode
</span><a href="System.Console.Haskeline.Vi.html#yankCommand"><span class="hs-identifier hs-var">yankCommand</span></a></span><span>
</span><span id="line-243"></span><span>                </span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">Char -&gt; Key
</span><a href="System.Console.Haskeline.Key.html#simpleChar"><span class="hs-identifier hs-var">simpleChar</span></a></span><span> </span><span class="annot"><span class="annottext">Char
</span><span class="hs-char">'y'</span></span><span> </span><span class="annot"><span class="annottext">Key
-&gt; Command (ViT m) (ArgMode CommandMode) CommandMode
-&gt; KeyCommand (ViT m) (ArgMode CommandMode) CommandMode
forall a. Key -&gt; a -&gt; KeyMap a
</span><a href="System.Console.Haskeline.Command.html#%2B%3E"><span class="hs-operator hs-var">+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">KillHelper -&gt; Command (ViT m) (ArgMode CommandMode) CommandMode
</span><a href="#local-6989586621679098654"><span class="hs-identifier hs-var">copyAndStore</span></a></span><span> </span><span class="annot"><span class="annottext">KillHelper
</span><a href="System.Console.Haskeline.Command.KillRing.html#killAll"><span class="hs-identifier hs-var">killAll</span></a></span><span>
</span><span id="line-244"></span><span>                </span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">Command (ViT m) (ArgMode CommandMode) CommandMode
-&gt; (KillHelper
    -&gt; Command (ViT m) (ArgMode CommandMode) CommandMode)
-&gt; KeyCommand (ViT m) (ArgMode CommandMode) CommandMode
forall (m :: * -&gt; *) s t.
Command m s t -&gt; (KillHelper -&gt; Command m s t) -&gt; KeyCommand m s t
</span><a href="System.Console.Haskeline.Vi.html#useMovementsForKill"><span class="hs-identifier hs-var">useMovementsForKill</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">(ArgMode CommandMode -&gt; CommandMode)
-&gt; Command (ViT m) (ArgMode CommandMode) CommandMode
forall t (m :: * -&gt; *) s.
(LineState t, Monad m) =&gt;
(s -&gt; t) -&gt; Command m s t
</span><a href="System.Console.Haskeline.Command.html#change"><span class="hs-identifier hs-var">change</span></a></span><span> </span><span class="annot"><span class="annottext">ArgMode CommandMode -&gt; CommandMode
forall s. ArgMode s -&gt; s
</span><a href="System.Console.Haskeline.LineState.html#argState"><span class="hs-identifier hs-var hs-var">argState</span></a></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">KillHelper -&gt; Command (ViT m) (ArgMode CommandMode) CommandMode
</span><a href="#local-6989586621679098654"><span class="hs-identifier hs-var">copyAndStore</span></a></span><span>
</span><span id="line-245"></span><span>                </span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">Command (ViT m) (ArgMode CommandMode) CommandMode
-&gt; KeyCommand (ViT m) (ArgMode CommandMode) CommandMode
forall (m :: * -&gt; *) s t. Command m s t -&gt; KeyCommand m s t
</span><a href="System.Console.Haskeline.Command.html#withoutConsuming"><span class="hs-identifier hs-var">withoutConsuming</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">(ArgMode CommandMode -&gt; CommandMode)
-&gt; Command (ViT m) (ArgMode CommandMode) CommandMode
forall t (m :: * -&gt; *) s.
(LineState t, Monad m) =&gt;
(s -&gt; t) -&gt; Command m s t
</span><a href="System.Console.Haskeline.Command.html#change"><span class="hs-identifier hs-var">change</span></a></span><span> </span><span class="annot"><span class="annottext">ArgMode CommandMode -&gt; CommandMode
forall s. ArgMode s -&gt; s
</span><a href="System.Console.Haskeline.LineState.html#argState"><span class="hs-identifier hs-var hs-var">argState</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-246"></span><span>                </span><span class="hs-special">]</span><span>
</span><span id="line-247"></span><span>    </span><span class="hs-keyword">where</span><span>
</span><span id="line-248"></span><span>        </span><span id="local-6989586621679098654"><span class="annot"><span class="annottext">copyAndStore :: KillHelper -&gt; Command (ViT m) (ArgMode CommandMode) CommandMode
</span><a href="#local-6989586621679098654"><span class="hs-identifier hs-var hs-var">copyAndStore</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Command (ViT m) (ArgMode CommandMode) CommandMode
-&gt; Command (ViT m) (ArgMode CommandMode) CommandMode
forall (m :: * -&gt; *).
Monad m =&gt;
Command (ViT m) (ArgMode CommandMode) CommandMode
-&gt; Command (ViT m) (ArgMode CommandMode) CommandMode
</span><a href="System.Console.Haskeline.Vi.html#storedCmdAction"><span class="hs-identifier hs-var">storedCmdAction</span></a></span><span> </span><span class="annot"><span class="annottext">(Command (ViT m) (ArgMode CommandMode) CommandMode
 -&gt; Command (ViT m) (ArgMode CommandMode) CommandMode)
-&gt; (KillHelper
    -&gt; Command (ViT m) (ArgMode CommandMode) CommandMode)
-&gt; KillHelper
-&gt; Command (ViT m) (ArgMode CommandMode) CommandMode
forall b c a. (b -&gt; c) -&gt; (a -&gt; b) -&gt; a -&gt; c
</span><a href="../../base/src/GHC.Base.html#."><span class="hs-operator hs-var">.</span></a></span><span> </span><span class="annot"><span class="annottext">KillHelper -&gt; Command (ViT m) (ArgMode CommandMode) CommandMode
forall (m :: * -&gt; *) s.
(MonadState KillRing m, Save s) =&gt;
KillHelper -&gt; Command m (ArgMode s) s
</span><a href="System.Console.Haskeline.Command.KillRing.html#copyFromArgHelper"><span class="hs-identifier hs-var">copyFromArgHelper</span></a></span><span>
</span><span id="line-249"></span><span>
</span><span id="line-250"></span><span id="local-6989586621679099455"><span class="annot"><a href="System.Console.Haskeline.Vi.html#reinputArg"><span class="hs-identifier hs-type">reinputArg</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="System.Console.Haskeline.LineState.html#LineState"><span class="hs-identifier hs-type">LineState</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679099455"><span class="hs-identifier hs-type">s</span></a></span><span> </span><span class="hs-glyph">=&gt;</span><span> </span><span class="annot"><a href="System.Console.Haskeline.Vi.html#InputKeyCmd"><span class="hs-identifier hs-type">InputKeyCmd</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="System.Console.Haskeline.LineState.html#ArgMode"><span class="hs-identifier hs-type">ArgMode</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679099455"><span class="hs-identifier hs-type">s</span></a></span><span class="hs-special">)</span><span> </span><span class="hs-special">(</span><span class="annot"><a href="System.Console.Haskeline.LineState.html#ArgMode"><span class="hs-identifier hs-type">ArgMode</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679099455"><span class="hs-identifier hs-type">s</span></a></span><span class="hs-special">)</span></span><span>
</span><span id="line-251"></span><span id="reinputArg"><span class="annot"><span class="annottext">reinputArg :: forall s. LineState s =&gt; InputKeyCmd (ArgMode s) (ArgMode s)
</span><a href="System.Console.Haskeline.Vi.html#reinputArg"><span class="hs-identifier hs-var hs-var">reinputArg</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">(Int -&gt; ArgMode s -&gt; ArgMode s)
-&gt; String -&gt; KeyCommand (ViT m) (ArgMode s) (ArgMode s)
forall (m :: * -&gt; *) t s.
(Monad m, LineState t) =&gt;
(Int -&gt; s -&gt; t) -&gt; String -&gt; KeyCommand m s t
</span><a href="System.Console.Haskeline.Vi.html#foreachDigit"><span class="hs-identifier hs-var">foreachDigit</span></a></span><span> </span><span class="annot"><span class="annottext">Int -&gt; ArgMode s -&gt; ArgMode s
forall s. Int -&gt; ArgMode s -&gt; ArgMode s
</span><a href="#local-6989586621679098617"><span class="hs-identifier hs-var">restartArg</span></a></span><span> </span><span class="hs-special">[</span><span class="annot"><span class="annottext">Char
</span><span class="hs-char">'1'</span></span><span class="hs-glyph">..</span><span class="annot"><span class="annottext">Char
</span><span class="hs-char">'9'</span></span><span class="hs-special">]</span><span> </span><span class="annot"><span class="annottext">KeyCommand (ViT m) (ArgMode s) (ArgMode s)
-&gt; Command (ViT m) (ArgMode s) (ArgMode s)
-&gt; KeyCommand (ViT m) (ArgMode s) (ArgMode s)
forall (m :: * -&gt; *) s t u.
Monad m =&gt;
KeyCommand m s t -&gt; Command m t u -&gt; KeyCommand m s u
</span><a href="System.Console.Haskeline.Command.html#%3E%2B%3E"><span class="hs-operator hs-var">&gt;+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">Command (ViT m) (ArgMode s) (ArgMode s)
</span><a href="#local-6989586621679098616"><span class="hs-identifier hs-var">loop</span></a></span><span>
</span><span id="line-252"></span><span>  </span><span class="hs-keyword">where</span><span>
</span><span id="line-253"></span><span>    </span><span id="local-6989586621679098617"><span class="annot"><span class="annottext">restartArg :: Int -&gt; ArgMode b -&gt; ArgMode b
</span><a href="#local-6989586621679098617"><span class="hs-identifier hs-var hs-var">restartArg</span></a></span></span><span> </span><span id="local-6989586621679098615"><span class="annot"><span class="annottext">Int
</span><a href="#local-6989586621679098615"><span class="hs-identifier hs-var">n</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Int -&gt; b -&gt; ArgMode b
forall s. Int -&gt; s -&gt; ArgMode s
</span><a href="System.Console.Haskeline.LineState.html#startArg"><span class="hs-identifier hs-var">startArg</span></a></span><span> </span><span class="annot"><span class="annottext">Int
</span><a href="#local-6989586621679098615"><span class="hs-identifier hs-var">n</span></a></span><span> </span><span class="annot"><span class="annottext">(b -&gt; ArgMode b) -&gt; (ArgMode b -&gt; b) -&gt; ArgMode b -&gt; ArgMode b
forall b c a. (b -&gt; c) -&gt; (a -&gt; b) -&gt; a -&gt; c
</span><a href="../../base/src/GHC.Base.html#."><span class="hs-operator hs-var">.</span></a></span><span> </span><span class="annot"><span class="annottext">ArgMode b -&gt; b
forall s. ArgMode s -&gt; s
</span><a href="System.Console.Haskeline.LineState.html#argState"><span class="hs-identifier hs-var hs-var">argState</span></a></span><span>
</span><span id="line-254"></span><span>    </span><span id="local-6989586621679098616"><span class="annot"><span class="annottext">loop :: Command (ViT m) (ArgMode s) (ArgMode s)
</span><a href="#local-6989586621679098616"><span class="hs-identifier hs-var hs-var">loop</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">[KeyCommand (ViT m) (ArgMode s) (ArgMode s)]
-&gt; Command (ViT m) (ArgMode s) (ArgMode s)
forall (m :: * -&gt; *) s t. [KeyCommand m s t] -&gt; Command m s t
</span><a href="System.Console.Haskeline.Command.html#keyChoiceCmd"><span class="hs-identifier hs-var">keyChoiceCmd</span></a></span><span>
</span><span id="line-255"></span><span>            </span><span class="hs-special">[</span><span> </span><span class="annot"><span class="annottext">(Int -&gt; ArgMode s -&gt; ArgMode s)
-&gt; String -&gt; KeyCommand (ViT m) (ArgMode s) (ArgMode s)
forall (m :: * -&gt; *) t s.
(Monad m, LineState t) =&gt;
(Int -&gt; s -&gt; t) -&gt; String -&gt; KeyCommand m s t
</span><a href="System.Console.Haskeline.Vi.html#foreachDigit"><span class="hs-identifier hs-var">foreachDigit</span></a></span><span> </span><span class="annot"><span class="annottext">Int -&gt; ArgMode s -&gt; ArgMode s
forall s. Int -&gt; ArgMode s -&gt; ArgMode s
</span><a href="System.Console.Haskeline.LineState.html#addNum"><span class="hs-identifier hs-var">addNum</span></a></span><span> </span><span class="hs-special">[</span><span class="annot"><span class="annottext">Char
</span><span class="hs-char">'0'</span></span><span class="hs-glyph">..</span><span class="annot"><span class="annottext">Char
</span><span class="hs-char">'9'</span></span><span class="hs-special">]</span><span> </span><span class="annot"><span class="annottext">KeyCommand (ViT m) (ArgMode s) (ArgMode s)
-&gt; Command (ViT m) (ArgMode s) (ArgMode s)
-&gt; KeyCommand (ViT m) (ArgMode s) (ArgMode s)
forall (m :: * -&gt; *) s t u.
Monad m =&gt;
KeyCommand m s t -&gt; Command m t u -&gt; KeyCommand m s u
</span><a href="System.Console.Haskeline.Command.html#%3E%2B%3E"><span class="hs-operator hs-var">&gt;+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">Command (ViT m) (ArgMode s) (ArgMode s)
</span><a href="#local-6989586621679098616"><span class="hs-identifier hs-var">loop</span></a></span><span>
</span><span id="line-256"></span><span>            </span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">Command (ViT m) (ArgMode s) (ArgMode s)
-&gt; KeyCommand (ViT m) (ArgMode s) (ArgMode s)
forall (m :: * -&gt; *) s t. Command m s t -&gt; KeyCommand m s t
</span><a href="System.Console.Haskeline.Command.html#withoutConsuming"><span class="hs-identifier hs-var">withoutConsuming</span></a></span><span> </span><span class="annot"><span class="annottext">Command (ViT m) (ArgMode s) (ArgMode s)
forall (m :: * -&gt; *) a. Monad m =&gt; a -&gt; m a
</span><a href="../../base/src/GHC.Base.html#return"><span class="hs-identifier hs-var">return</span></a></span><span>
</span><span id="line-257"></span><span>            </span><span class="hs-special">]</span><span>
</span><span id="line-258"></span><span>
</span><span id="line-259"></span><span class="annot"><a href="System.Console.Haskeline.Vi.html#goToWordDelEnd"><span class="hs-identifier hs-type">goToWordDelEnd</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="System.Console.Haskeline.Vi.html#goToBigWordDelEnd"><span class="hs-identifier hs-type">goToBigWordDelEnd</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="System.Console.Haskeline.LineState.html#InsertMode"><span class="hs-identifier hs-type">InsertMode</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="System.Console.Haskeline.LineState.html#InsertMode"><span class="hs-identifier hs-type">InsertMode</span></a></span><span>
</span><span id="line-260"></span><span id="goToWordDelEnd"><span class="annot"><span class="annottext">goToWordDelEnd :: InsertMode -&gt; InsertMode
</span><a href="System.Console.Haskeline.Vi.html#goToWordDelEnd"><span class="hs-identifier hs-var hs-var">goToWordDelEnd</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">(InsertMode -&gt; Bool) -&gt; InsertMode -&gt; InsertMode
</span><a href="System.Console.Haskeline.LineState.html#goRightUntil"><span class="hs-identifier hs-var">goRightUntil</span></a></span><span> </span><span class="annot"><span class="annottext">((InsertMode -&gt; Bool) -&gt; InsertMode -&gt; InsertMode)
-&gt; (InsertMode -&gt; Bool) -&gt; InsertMode -&gt; InsertMode
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="annot"><span class="annottext">(Char -&gt; Bool) -&gt; InsertMode -&gt; Bool
</span><a href="System.Console.Haskeline.LineState.html#atStart"><span class="hs-identifier hs-var">atStart</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Bool -&gt; Bool
</span><span class="hs-identifier hs-var">not</span></span><span> </span><span class="annot"><span class="annottext">(Bool -&gt; Bool) -&gt; (Char -&gt; Bool) -&gt; Char -&gt; Bool
forall b c a. (b -&gt; c) -&gt; (a -&gt; b) -&gt; a -&gt; c
</span><a href="../../base/src/GHC.Base.html#."><span class="hs-operator hs-var">.</span></a></span><span> </span><span class="annot"><span class="annottext">Char -&gt; Bool
</span><a href="System.Console.Haskeline.Vi.html#isWordChar"><span class="hs-identifier hs-var">isWordChar</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-261"></span><span>                                    </span><span class="annot"><span class="annottext">(InsertMode -&gt; Bool) -&gt; (InsertMode -&gt; Bool) -&gt; InsertMode -&gt; Bool
forall a. (a -&gt; Bool) -&gt; (a -&gt; Bool) -&gt; a -&gt; Bool
</span><a href="System.Console.Haskeline.Vi.html#.%7C%7C."><span class="hs-operator hs-var">.||.</span></a></span><span> </span><span class="annot"><span class="annottext">(Char -&gt; Bool) -&gt; InsertMode -&gt; Bool
</span><a href="System.Console.Haskeline.LineState.html#atStart"><span class="hs-identifier hs-var">atStart</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Bool -&gt; Bool
</span><span class="hs-identifier hs-var">not</span></span><span> </span><span class="annot"><span class="annottext">(Bool -&gt; Bool) -&gt; (Char -&gt; Bool) -&gt; Char -&gt; Bool
forall b c a. (b -&gt; c) -&gt; (a -&gt; b) -&gt; a -&gt; c
</span><a href="../../base/src/GHC.Base.html#."><span class="hs-operator hs-var">.</span></a></span><span> </span><span class="annot"><span class="annottext">Char -&gt; Bool
</span><a href="System.Console.Haskeline.Vi.html#isOtherChar"><span class="hs-identifier hs-var">isOtherChar</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-262"></span><span id="goToBigWordDelEnd"><span class="annot"><span class="annottext">goToBigWordDelEnd :: InsertMode -&gt; InsertMode
</span><a href="System.Console.Haskeline.Vi.html#goToBigWordDelEnd"><span class="hs-identifier hs-var hs-var">goToBigWordDelEnd</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">(InsertMode -&gt; Bool) -&gt; InsertMode -&gt; InsertMode
</span><a href="System.Console.Haskeline.LineState.html#goRightUntil"><span class="hs-identifier hs-var">goRightUntil</span></a></span><span> </span><span class="annot"><span class="annottext">((InsertMode -&gt; Bool) -&gt; InsertMode -&gt; InsertMode)
-&gt; (InsertMode -&gt; Bool) -&gt; InsertMode -&gt; InsertMode
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="annot"><span class="annottext">(Char -&gt; Bool) -&gt; InsertMode -&gt; Bool
</span><a href="System.Console.Haskeline.LineState.html#atStart"><span class="hs-identifier hs-var">atStart</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Bool -&gt; Bool
</span><span class="hs-identifier hs-var">not</span></span><span> </span><span class="annot"><span class="annottext">(Bool -&gt; Bool) -&gt; (Char -&gt; Bool) -&gt; Char -&gt; Bool
forall b c a. (b -&gt; c) -&gt; (a -&gt; b) -&gt; a -&gt; c
</span><a href="../../base/src/GHC.Base.html#."><span class="hs-operator hs-var">.</span></a></span><span> </span><span class="annot"><span class="annottext">Char -&gt; Bool
</span><a href="System.Console.Haskeline.Vi.html#isBigWordChar"><span class="hs-identifier hs-var">isBigWordChar</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-263"></span><span>
</span><span id="line-264"></span><span>
</span><span id="line-265"></span><span class="annot"><a href="System.Console.Haskeline.Vi.html#movements"><span class="hs-identifier hs-type">movements</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="hs-special">[</span><span class="hs-special">(</span><span class="annot"><a href="System.Console.Haskeline.Key.html#Key"><span class="hs-identifier hs-type">Key</span></a></span><span class="hs-special">,</span><span class="annot"><a href="System.Console.Haskeline.LineState.html#InsertMode"><span class="hs-identifier hs-type">InsertMode</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="System.Console.Haskeline.LineState.html#InsertMode"><span class="hs-identifier hs-type">InsertMode</span></a></span><span class="hs-special">)</span><span class="hs-special">]</span><span>
</span><span id="line-266"></span><span id="movements"><span class="annot"><span class="annottext">movements :: [(Key, InsertMode -&gt; InsertMode)]
</span><a href="System.Console.Haskeline.Vi.html#movements"><span class="hs-identifier hs-var hs-var">movements</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="hs-special">[</span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Char -&gt; Key
</span><a href="System.Console.Haskeline.Key.html#simpleChar"><span class="hs-identifier hs-var">simpleChar</span></a></span><span> </span><span class="annot"><span class="annottext">Char
</span><span class="hs-char">'h'</span></span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">InsertMode -&gt; InsertMode
forall s. Move s =&gt; s -&gt; s
</span><a href="System.Console.Haskeline.LineState.html#goLeft"><span class="hs-identifier hs-var">goLeft</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-267"></span><span>            </span><span class="hs-special">,</span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Char -&gt; Key
</span><a href="System.Console.Haskeline.Key.html#simpleChar"><span class="hs-identifier hs-var">simpleChar</span></a></span><span> </span><span class="annot"><span class="annottext">Char
</span><span class="hs-char">'l'</span></span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">InsertMode -&gt; InsertMode
forall s. Move s =&gt; s -&gt; s
</span><a href="System.Console.Haskeline.LineState.html#goRight"><span class="hs-identifier hs-var">goRight</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-268"></span><span>            </span><span class="hs-special">,</span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Char -&gt; Key
</span><a href="System.Console.Haskeline.Key.html#simpleChar"><span class="hs-identifier hs-var">simpleChar</span></a></span><span> </span><span class="annot"><span class="annottext">Char
</span><span class="hs-char">' '</span></span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">InsertMode -&gt; InsertMode
forall s. Move s =&gt; s -&gt; s
</span><a href="System.Console.Haskeline.LineState.html#goRight"><span class="hs-identifier hs-var">goRight</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-269"></span><span>            </span><span class="hs-special">,</span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">BaseKey -&gt; Key
</span><a href="System.Console.Haskeline.Key.html#simpleKey"><span class="hs-identifier hs-var">simpleKey</span></a></span><span> </span><span class="annot"><span class="annottext">BaseKey
</span><a href="System.Console.Haskeline.Key.html#LeftKey"><span class="hs-identifier hs-var">LeftKey</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">InsertMode -&gt; InsertMode
forall s. Move s =&gt; s -&gt; s
</span><a href="System.Console.Haskeline.LineState.html#goLeft"><span class="hs-identifier hs-var">goLeft</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-270"></span><span>            </span><span class="hs-special">,</span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">BaseKey -&gt; Key
</span><a href="System.Console.Haskeline.Key.html#simpleKey"><span class="hs-identifier hs-var">simpleKey</span></a></span><span> </span><span class="annot"><span class="annottext">BaseKey
</span><a href="System.Console.Haskeline.Key.html#RightKey"><span class="hs-identifier hs-var">RightKey</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">InsertMode -&gt; InsertMode
forall s. Move s =&gt; s -&gt; s
</span><a href="System.Console.Haskeline.LineState.html#goRight"><span class="hs-identifier hs-var">goRight</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-271"></span><span>            </span><span class="hs-special">,</span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Char -&gt; Key
</span><a href="System.Console.Haskeline.Key.html#simpleChar"><span class="hs-identifier hs-var">simpleChar</span></a></span><span> </span><span class="annot"><span class="annottext">Char
</span><span class="hs-char">'0'</span></span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">InsertMode -&gt; InsertMode
forall s. Move s =&gt; s -&gt; s
</span><a href="System.Console.Haskeline.LineState.html#moveToStart"><span class="hs-identifier hs-var">moveToStart</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-272"></span><span>            </span><span class="hs-special">,</span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Char -&gt; Key
</span><a href="System.Console.Haskeline.Key.html#simpleChar"><span class="hs-identifier hs-var">simpleChar</span></a></span><span> </span><span class="annot"><span class="annottext">Char
</span><span class="hs-char">'$'</span></span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">InsertMode -&gt; InsertMode
forall s. Move s =&gt; s -&gt; s
</span><a href="System.Console.Haskeline.LineState.html#moveToEnd"><span class="hs-identifier hs-var">moveToEnd</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-273"></span><span>            </span><span class="hs-special">,</span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Char -&gt; Key
</span><a href="System.Console.Haskeline.Key.html#simpleChar"><span class="hs-identifier hs-var">simpleChar</span></a></span><span> </span><span class="annot"><span class="annottext">Char
</span><span class="hs-char">'^'</span></span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">(Char -&gt; Bool) -&gt; InsertMode -&gt; InsertMode
</span><a href="System.Console.Haskeline.LineState.html#skipRight"><span class="hs-identifier hs-var">skipRight</span></a></span><span> </span><span class="annot"><span class="annottext">Char -&gt; Bool
</span><a href="../../base/src/GHC.Unicode.html#isSpace"><span class="hs-identifier hs-var">isSpace</span></a></span><span> </span><span class="annot"><span class="annottext">(InsertMode -&gt; InsertMode)
-&gt; (InsertMode -&gt; InsertMode) -&gt; InsertMode -&gt; InsertMode
forall b c a. (b -&gt; c) -&gt; (a -&gt; b) -&gt; a -&gt; c
</span><a href="../../base/src/GHC.Base.html#."><span class="hs-operator hs-var">.</span></a></span><span> </span><span class="annot"><span class="annottext">InsertMode -&gt; InsertMode
forall s. Move s =&gt; s -&gt; s
</span><a href="System.Console.Haskeline.LineState.html#moveToStart"><span class="hs-identifier hs-var">moveToStart</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-274"></span><span>            </span><span class="hs-special">,</span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Char -&gt; Key
</span><a href="System.Console.Haskeline.Key.html#simpleChar"><span class="hs-identifier hs-var">simpleChar</span></a></span><span> </span><span class="annot"><span class="annottext">Char
</span><span class="hs-char">'%'</span></span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">InsertMode -&gt; InsertMode
</span><a href="System.Console.Haskeline.Vi.html#findMatchingBrace"><span class="hs-identifier hs-var">findMatchingBrace</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-275"></span><span>            </span><span class="hs-comment">------------------</span><span>
</span><span id="line-276"></span><span>            </span><span class="hs-comment">-- Word movements</span><span>
</span><span id="line-277"></span><span>            </span><span class="hs-comment">-- move to the start of the next word</span><span>
</span><span id="line-278"></span><span>            </span><span class="hs-special">,</span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Char -&gt; Key
</span><a href="System.Console.Haskeline.Key.html#simpleChar"><span class="hs-identifier hs-var">simpleChar</span></a></span><span> </span><span class="annot"><span class="annottext">Char
</span><span class="hs-char">'w'</span></span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">(InsertMode -&gt; Bool) -&gt; InsertMode -&gt; InsertMode
</span><a href="System.Console.Haskeline.LineState.html#goRightUntil"><span class="hs-identifier hs-var">goRightUntil</span></a></span><span> </span><span class="annot"><span class="annottext">((InsertMode -&gt; Bool) -&gt; InsertMode -&gt; InsertMode)
-&gt; (InsertMode -&gt; Bool) -&gt; InsertMode -&gt; InsertMode
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span>
</span><span id="line-279"></span><span>                                </span><span class="annot"><span class="annottext">(Char -&gt; Bool) -&gt; InsertMode -&gt; Bool
</span><a href="System.Console.Haskeline.LineState.html#atStart"><span class="hs-identifier hs-var">atStart</span></a></span><span> </span><span class="annot"><span class="annottext">Char -&gt; Bool
</span><a href="System.Console.Haskeline.Vi.html#isWordChar"><span class="hs-identifier hs-var">isWordChar</span></a></span><span> </span><span class="annot"><span class="annottext">(InsertMode -&gt; Bool) -&gt; (InsertMode -&gt; Bool) -&gt; InsertMode -&gt; Bool
forall a. (a -&gt; Bool) -&gt; (a -&gt; Bool) -&gt; a -&gt; Bool
</span><a href="System.Console.Haskeline.Vi.html#.%7C%7C."><span class="hs-operator hs-var">.||.</span></a></span><span> </span><span class="annot"><span class="annottext">(Char -&gt; Bool) -&gt; InsertMode -&gt; Bool
</span><a href="System.Console.Haskeline.LineState.html#atStart"><span class="hs-identifier hs-var">atStart</span></a></span><span> </span><span class="annot"><span class="annottext">Char -&gt; Bool
</span><a href="System.Console.Haskeline.Vi.html#isOtherChar"><span class="hs-identifier hs-var">isOtherChar</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-280"></span><span>            </span><span class="hs-special">,</span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Char -&gt; Key
</span><a href="System.Console.Haskeline.Key.html#simpleChar"><span class="hs-identifier hs-var">simpleChar</span></a></span><span> </span><span class="annot"><span class="annottext">Char
</span><span class="hs-char">'W'</span></span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">(InsertMode -&gt; Bool) -&gt; InsertMode -&gt; InsertMode
</span><a href="System.Console.Haskeline.LineState.html#goRightUntil"><span class="hs-identifier hs-var">goRightUntil</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">(Char -&gt; Bool) -&gt; InsertMode -&gt; Bool
</span><a href="System.Console.Haskeline.LineState.html#atStart"><span class="hs-identifier hs-var">atStart</span></a></span><span> </span><span class="annot"><span class="annottext">Char -&gt; Bool
</span><a href="System.Console.Haskeline.Vi.html#isBigWordChar"><span class="hs-identifier hs-var">isBigWordChar</span></a></span><span class="hs-special">)</span><span class="hs-special">)</span><span>
</span><span id="line-281"></span><span>            </span><span class="hs-comment">-- move to the beginning of the previous word</span><span>
</span><span id="line-282"></span><span>            </span><span class="hs-special">,</span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Char -&gt; Key
</span><a href="System.Console.Haskeline.Key.html#simpleChar"><span class="hs-identifier hs-var">simpleChar</span></a></span><span> </span><span class="annot"><span class="annottext">Char
</span><span class="hs-char">'b'</span></span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">(InsertMode -&gt; Bool) -&gt; InsertMode -&gt; InsertMode
</span><a href="System.Console.Haskeline.LineState.html#goLeftUntil"><span class="hs-identifier hs-var">goLeftUntil</span></a></span><span> </span><span class="annot"><span class="annottext">((InsertMode -&gt; Bool) -&gt; InsertMode -&gt; InsertMode)
-&gt; (InsertMode -&gt; Bool) -&gt; InsertMode -&gt; InsertMode
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span>
</span><span id="line-283"></span><span>                                </span><span class="annot"><span class="annottext">(Char -&gt; Bool) -&gt; InsertMode -&gt; Bool
</span><a href="System.Console.Haskeline.LineState.html#atStart"><span class="hs-identifier hs-var">atStart</span></a></span><span> </span><span class="annot"><span class="annottext">Char -&gt; Bool
</span><a href="System.Console.Haskeline.Vi.html#isWordChar"><span class="hs-identifier hs-var">isWordChar</span></a></span><span> </span><span class="annot"><span class="annottext">(InsertMode -&gt; Bool) -&gt; (InsertMode -&gt; Bool) -&gt; InsertMode -&gt; Bool
forall a. (a -&gt; Bool) -&gt; (a -&gt; Bool) -&gt; a -&gt; Bool
</span><a href="System.Console.Haskeline.Vi.html#.%7C%7C."><span class="hs-operator hs-var">.||.</span></a></span><span> </span><span class="annot"><span class="annottext">(Char -&gt; Bool) -&gt; InsertMode -&gt; Bool
</span><a href="System.Console.Haskeline.LineState.html#atStart"><span class="hs-identifier hs-var">atStart</span></a></span><span> </span><span class="annot"><span class="annottext">Char -&gt; Bool
</span><a href="System.Console.Haskeline.Vi.html#isOtherChar"><span class="hs-identifier hs-var">isOtherChar</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-284"></span><span>            </span><span class="hs-special">,</span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Char -&gt; Key
</span><a href="System.Console.Haskeline.Key.html#simpleChar"><span class="hs-identifier hs-var">simpleChar</span></a></span><span> </span><span class="annot"><span class="annottext">Char
</span><span class="hs-char">'B'</span></span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">(InsertMode -&gt; Bool) -&gt; InsertMode -&gt; InsertMode
</span><a href="System.Console.Haskeline.LineState.html#goLeftUntil"><span class="hs-identifier hs-var">goLeftUntil</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">(Char -&gt; Bool) -&gt; InsertMode -&gt; Bool
</span><a href="System.Console.Haskeline.LineState.html#atStart"><span class="hs-identifier hs-var">atStart</span></a></span><span> </span><span class="annot"><span class="annottext">Char -&gt; Bool
</span><a href="System.Console.Haskeline.Vi.html#isBigWordChar"><span class="hs-identifier hs-var">isBigWordChar</span></a></span><span class="hs-special">)</span><span class="hs-special">)</span><span>
</span><span id="line-285"></span><span>            </span><span class="hs-comment">-- move to the end of the current word</span><span>
</span><span id="line-286"></span><span>            </span><span class="hs-special">,</span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Char -&gt; Key
</span><a href="System.Console.Haskeline.Key.html#simpleChar"><span class="hs-identifier hs-var">simpleChar</span></a></span><span> </span><span class="annot"><span class="annottext">Char
</span><span class="hs-char">'e'</span></span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">(InsertMode -&gt; Bool) -&gt; InsertMode -&gt; InsertMode
</span><a href="System.Console.Haskeline.LineState.html#goRightUntil"><span class="hs-identifier hs-var">goRightUntil</span></a></span><span> </span><span class="annot"><span class="annottext">((InsertMode -&gt; Bool) -&gt; InsertMode -&gt; InsertMode)
-&gt; (InsertMode -&gt; Bool) -&gt; InsertMode -&gt; InsertMode
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span>
</span><span id="line-287"></span><span>                                </span><span class="annot"><span class="annottext">(Char -&gt; Bool) -&gt; InsertMode -&gt; Bool
</span><a href="System.Console.Haskeline.LineState.html#atEnd"><span class="hs-identifier hs-var">atEnd</span></a></span><span> </span><span class="annot"><span class="annottext">Char -&gt; Bool
</span><a href="System.Console.Haskeline.Vi.html#isWordChar"><span class="hs-identifier hs-var">isWordChar</span></a></span><span> </span><span class="annot"><span class="annottext">(InsertMode -&gt; Bool) -&gt; (InsertMode -&gt; Bool) -&gt; InsertMode -&gt; Bool
forall a. (a -&gt; Bool) -&gt; (a -&gt; Bool) -&gt; a -&gt; Bool
</span><a href="System.Console.Haskeline.Vi.html#.%7C%7C."><span class="hs-operator hs-var">.||.</span></a></span><span> </span><span class="annot"><span class="annottext">(Char -&gt; Bool) -&gt; InsertMode -&gt; Bool
</span><a href="System.Console.Haskeline.LineState.html#atEnd"><span class="hs-identifier hs-var">atEnd</span></a></span><span> </span><span class="annot"><span class="annottext">Char -&gt; Bool
</span><a href="System.Console.Haskeline.Vi.html#isOtherChar"><span class="hs-identifier hs-var">isOtherChar</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-288"></span><span>            </span><span class="hs-special">,</span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Char -&gt; Key
</span><a href="System.Console.Haskeline.Key.html#simpleChar"><span class="hs-identifier hs-var">simpleChar</span></a></span><span> </span><span class="annot"><span class="annottext">Char
</span><span class="hs-char">'E'</span></span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">(InsertMode -&gt; Bool) -&gt; InsertMode -&gt; InsertMode
</span><a href="System.Console.Haskeline.LineState.html#goRightUntil"><span class="hs-identifier hs-var">goRightUntil</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">(Char -&gt; Bool) -&gt; InsertMode -&gt; Bool
</span><a href="System.Console.Haskeline.LineState.html#atEnd"><span class="hs-identifier hs-var">atEnd</span></a></span><span> </span><span class="annot"><span class="annottext">Char -&gt; Bool
</span><a href="System.Console.Haskeline.Vi.html#isBigWordChar"><span class="hs-identifier hs-var">isBigWordChar</span></a></span><span class="hs-special">)</span><span class="hs-special">)</span><span>
</span><span id="line-289"></span><span>            </span><span class="hs-special">]</span><span>
</span><span id="line-290"></span><span>
</span><span id="line-291"></span><span class="hs-comment">{- 
From IEEE 1003.1:
A &quot;bigword&quot; consists of: a maximal sequence of non-blanks preceded and followed by blanks
A &quot;word&quot; consists of either:
 - a maximal sequence of wordChars, delimited at both ends by non-wordchars
 - a maximal sequence of non-blank non-wordchars, delimited at both ends by either blanks
   or a wordchar.
-}</span><span>            </span><span>
</span><span id="line-299"></span><span class="annot"><a href="System.Console.Haskeline.Vi.html#isBigWordChar"><span class="hs-identifier hs-type">isBigWordChar</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="System.Console.Haskeline.Vi.html#isWordChar"><span class="hs-identifier hs-type">isWordChar</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="System.Console.Haskeline.Vi.html#isOtherChar"><span class="hs-identifier hs-type">isOtherChar</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><span class="hs-identifier hs-type">Char</span></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="hs-identifier hs-type">Bool</span></span><span>
</span><span id="line-300"></span><span id="isBigWordChar"><span class="annot"><span class="annottext">isBigWordChar :: Char -&gt; Bool
</span><a href="System.Console.Haskeline.Vi.html#isBigWordChar"><span class="hs-identifier hs-var hs-var">isBigWordChar</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Bool -&gt; Bool
</span><span class="hs-identifier hs-var">not</span></span><span> </span><span class="annot"><span class="annottext">(Bool -&gt; Bool) -&gt; (Char -&gt; Bool) -&gt; Char -&gt; Bool
forall b c a. (b -&gt; c) -&gt; (a -&gt; b) -&gt; a -&gt; c
</span><a href="../../base/src/GHC.Base.html#."><span class="hs-operator hs-var">.</span></a></span><span> </span><span class="annot"><span class="annottext">Char -&gt; Bool
</span><a href="../../base/src/GHC.Unicode.html#isSpace"><span class="hs-identifier hs-var">isSpace</span></a></span><span>
</span><span id="line-301"></span><span id="isWordChar"><span class="annot"><span class="annottext">isWordChar :: Char -&gt; Bool
</span><a href="System.Console.Haskeline.Vi.html#isWordChar"><span class="hs-identifier hs-var hs-var">isWordChar</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Char -&gt; Bool
</span><a href="../../base/src/GHC.Unicode.html#isAlphaNum"><span class="hs-identifier hs-var">isAlphaNum</span></a></span><span> </span><span class="annot"><span class="annottext">(Char -&gt; Bool) -&gt; (Char -&gt; Bool) -&gt; Char -&gt; Bool
forall a. (a -&gt; Bool) -&gt; (a -&gt; Bool) -&gt; a -&gt; Bool
</span><a href="System.Console.Haskeline.Vi.html#.%7C%7C."><span class="hs-operator hs-var">.||.</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Char -&gt; Char -&gt; Bool
forall a. Eq a =&gt; a -&gt; a -&gt; Bool
</span><span class="hs-operator hs-var">==</span></span><span class="annot"><span class="annottext">Char
</span><span class="hs-char">'_'</span></span><span class="hs-special">)</span><span>
</span><span id="line-302"></span><span id="isOtherChar"><span class="annot"><span class="annottext">isOtherChar :: Char -&gt; Bool
</span><a href="System.Console.Haskeline.Vi.html#isOtherChar"><span class="hs-identifier hs-var hs-var">isOtherChar</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Bool -&gt; Bool
</span><span class="hs-identifier hs-var">not</span></span><span> </span><span class="annot"><span class="annottext">(Bool -&gt; Bool) -&gt; (Char -&gt; Bool) -&gt; Char -&gt; Bool
forall b c a. (b -&gt; c) -&gt; (a -&gt; b) -&gt; a -&gt; c
</span><a href="../../base/src/GHC.Base.html#."><span class="hs-operator hs-var">.</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Char -&gt; Bool
</span><a href="../../base/src/GHC.Unicode.html#isSpace"><span class="hs-identifier hs-var">isSpace</span></a></span><span> </span><span class="annot"><span class="annottext">(Char -&gt; Bool) -&gt; (Char -&gt; Bool) -&gt; Char -&gt; Bool
forall a. (a -&gt; Bool) -&gt; (a -&gt; Bool) -&gt; a -&gt; Bool
</span><a href="System.Console.Haskeline.Vi.html#.%7C%7C."><span class="hs-operator hs-var">.||.</span></a></span><span> </span><span class="annot"><span class="annottext">Char -&gt; Bool
</span><a href="System.Console.Haskeline.Vi.html#isWordChar"><span class="hs-identifier hs-var">isWordChar</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-303"></span><span>
</span><span id="line-304"></span><span id="local-6989586621679099446"><span class="annot"><a href="System.Console.Haskeline.Vi.html#.%7C%7C."><span class="hs-operator hs-type">(.||.)</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="hs-special">(</span><span class="annot"><a href="#local-6989586621679099446"><span class="hs-identifier hs-type">a</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="hs-identifier hs-type">Bool</span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="hs-special">(</span><span class="annot"><a href="#local-6989586621679099446"><span class="hs-identifier hs-type">a</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="hs-identifier hs-type">Bool</span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="#local-6989586621679099446"><span class="hs-identifier hs-type">a</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="hs-identifier hs-type">Bool</span></span></span><span>
</span><span id="line-305"></span><span class="hs-special">(</span><span id="local-6989586621679098597"><span class="annot"><span class="annottext">a -&gt; Bool
</span><a href="#local-6989586621679098597"><span class="hs-identifier hs-var">f</span></a></span></span><span> </span><span id=".%7C%7C."><span class="annot"><span class="annottext">.||. :: forall a. (a -&gt; Bool) -&gt; (a -&gt; Bool) -&gt; a -&gt; Bool
</span><a href="System.Console.Haskeline.Vi.html#.%7C%7C."><span class="hs-operator hs-var hs-var">.||.</span></a></span></span><span> </span><span id="local-6989586621679098596"><span class="annot"><span class="annottext">a -&gt; Bool
</span><a href="#local-6989586621679098596"><span class="hs-identifier hs-var">g</span></a></span></span><span class="hs-special">)</span><span> </span><span id="local-6989586621679098595"><span class="annot"><span class="annottext">a
</span><a href="#local-6989586621679098595"><span class="hs-identifier hs-var">x</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">a -&gt; Bool
</span><a href="#local-6989586621679098597"><span class="hs-identifier hs-var">f</span></a></span><span> </span><span class="annot"><span class="annottext">a
</span><a href="#local-6989586621679098595"><span class="hs-identifier hs-var">x</span></a></span><span> </span><span class="annot"><span class="annottext">Bool -&gt; Bool -&gt; Bool
</span><span class="hs-operator hs-var">||</span></span><span> </span><span class="annot"><span class="annottext">a -&gt; Bool
</span><a href="#local-6989586621679098596"><span class="hs-identifier hs-var">g</span></a></span><span> </span><span class="annot"><span class="annottext">a
</span><a href="#local-6989586621679098595"><span class="hs-identifier hs-var">x</span></a></span><span>
</span><span id="line-306"></span><span>
</span><span id="line-307"></span><span id="local-6989586621679099489"><span id="local-6989586621679099490"><span id="local-6989586621679099491"><span class="annot"><a href="System.Console.Haskeline.Vi.html#foreachDigit"><span class="hs-identifier hs-type">foreachDigit</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="hs-special">(</span><span class="annot"><a href="../../base/src/GHC.Base.html#Monad"><span class="hs-identifier hs-type">Monad</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679099491"><span class="hs-identifier hs-type">m</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="System.Console.Haskeline.LineState.html#LineState"><span class="hs-identifier hs-type">LineState</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679099490"><span class="hs-identifier hs-type">t</span></a></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=&gt;</span><span> </span><span class="hs-special">(</span><span class="annot"><span class="hs-identifier hs-type">Int</span></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="#local-6989586621679099489"><span class="hs-identifier hs-type">s</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="#local-6989586621679099490"><span class="hs-identifier hs-type">t</span></a></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="hs-special">[</span><span class="annot"><span class="hs-identifier hs-type">Char</span></span><span class="hs-special">]</span><span> </span><span>
</span><span id="line-308"></span><span>                </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="System.Console.Haskeline.Command.html#KeyCommand"><span class="hs-identifier hs-type">KeyCommand</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679099491"><span class="hs-identifier hs-type">m</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679099489"><span class="hs-identifier hs-type">s</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679099490"><span class="hs-identifier hs-type">t</span></a></span></span></span></span><span>
</span><span id="line-309"></span><span id="foreachDigit"><span class="annot"><span class="annottext">foreachDigit :: forall (m :: * -&gt; *) t s.
(Monad m, LineState t) =&gt;
(Int -&gt; s -&gt; t) -&gt; String -&gt; KeyCommand m s t
</span><a href="System.Console.Haskeline.Vi.html#foreachDigit"><span class="hs-identifier hs-var hs-var">foreachDigit</span></a></span></span><span> </span><span id="local-6989586621679098590"><span class="annot"><span class="annottext">Int -&gt; s -&gt; t
</span><a href="#local-6989586621679098590"><span class="hs-identifier hs-var">f</span></a></span></span><span> </span><span id="local-6989586621679098589"><span class="annot"><span class="annottext">String
</span><a href="#local-6989586621679098589"><span class="hs-identifier hs-var">ds</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">[KeyMap (Command m s t)] -&gt; KeyMap (Command m s t)
forall a. [KeyMap a] -&gt; KeyMap a
</span><a href="System.Console.Haskeline.Command.html#choiceCmd"><span class="hs-identifier hs-var">choiceCmd</span></a></span><span> </span><span class="annot"><span class="annottext">([KeyMap (Command m s t)] -&gt; KeyMap (Command m s t))
-&gt; [KeyMap (Command m s t)] -&gt; KeyMap (Command m s t)
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="annot"><span class="annottext">(Char -&gt; KeyMap (Command m s t))
-&gt; String -&gt; [KeyMap (Command m s t)]
forall a b. (a -&gt; b) -&gt; [a] -&gt; [b]
</span><a href="../../base/src/GHC.Base.html#map"><span class="hs-identifier hs-var">map</span></a></span><span> </span><span class="annot"><span class="annottext">Char -&gt; KeyMap (Command m s t)
forall {m :: * -&gt; *}. Monad m =&gt; Char -&gt; KeyMap (Command m s t)
</span><a href="#local-6989586621679098588"><span class="hs-identifier hs-var">digitCmd</span></a></span><span> </span><span class="annot"><span class="annottext">String
</span><a href="#local-6989586621679098589"><span class="hs-identifier hs-var">ds</span></a></span><span>
</span><span id="line-310"></span><span>    </span><span class="hs-keyword">where</span><span> </span><span id="local-6989586621679098588"><span class="annot"><span class="annottext">digitCmd :: Char -&gt; KeyMap (Command m s t)
</span><a href="#local-6989586621679098588"><span class="hs-identifier hs-var hs-var">digitCmd</span></a></span></span><span> </span><span id="local-6989586621679098583"><span class="annot"><span class="annottext">Char
</span><a href="#local-6989586621679098583"><span class="hs-identifier hs-var">d</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Char -&gt; Key
</span><a href="System.Console.Haskeline.Key.html#simpleChar"><span class="hs-identifier hs-var">simpleChar</span></a></span><span> </span><span class="annot"><span class="annottext">Char
</span><a href="#local-6989586621679098583"><span class="hs-identifier hs-var">d</span></a></span><span> </span><span class="annot"><span class="annottext">Key -&gt; Command m s t -&gt; KeyMap (Command m s t)
forall a. Key -&gt; a -&gt; KeyMap a
</span><a href="System.Console.Haskeline.Command.html#%2B%3E"><span class="hs-operator hs-var">+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">(s -&gt; t) -&gt; Command m s t
forall t (m :: * -&gt; *) s.
(LineState t, Monad m) =&gt;
(s -&gt; t) -&gt; Command m s t
</span><a href="System.Console.Haskeline.Command.html#change"><span class="hs-identifier hs-var">change</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Int -&gt; s -&gt; t
</span><a href="#local-6989586621679098590"><span class="hs-identifier hs-var">f</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Char -&gt; Int
forall {a}. Enum a =&gt; a -&gt; Int
</span><a href="#local-6989586621679098582"><span class="hs-identifier hs-var">toDigit</span></a></span><span> </span><span class="annot"><span class="annottext">Char
</span><a href="#local-6989586621679098583"><span class="hs-identifier hs-var">d</span></a></span><span class="hs-special">)</span><span class="hs-special">)</span><span>
</span><span id="line-311"></span><span>          </span><span id="local-6989586621679098582"><span class="annot"><span class="annottext">toDigit :: a -&gt; Int
</span><a href="#local-6989586621679098582"><span class="hs-identifier hs-var hs-var">toDigit</span></a></span></span><span> </span><span id="local-6989586621679098577"><span class="annot"><span class="annottext">a
</span><a href="#local-6989586621679098577"><span class="hs-identifier hs-var">d</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">a -&gt; Int
forall {a}. Enum a =&gt; a -&gt; Int
</span><a href="../../base/src/GHC.Enum.html#fromEnum"><span class="hs-identifier hs-var">fromEnum</span></a></span><span> </span><span class="annot"><span class="annottext">a
</span><a href="#local-6989586621679098577"><span class="hs-identifier hs-var">d</span></a></span><span> </span><span class="annot"><span class="annottext">Int -&gt; Int -&gt; Int
forall a. Num a =&gt; a -&gt; a -&gt; a
</span><a href="../../base/src/GHC.Num.html#-"><span class="hs-glyph hs-var">-</span></a></span><span> </span><span class="annot"><span class="annottext">Char -&gt; Int
forall {a}. Enum a =&gt; a -&gt; Int
</span><a href="../../base/src/GHC.Enum.html#fromEnum"><span class="hs-identifier hs-var">fromEnum</span></a></span><span> </span><span class="annot"><span class="annottext">Char
</span><span class="hs-char">'0'</span></span><span>
</span><span id="line-312"></span><span>
</span><span id="line-313"></span><span>
</span><span id="line-314"></span><span class="hs-comment">-- This mimics the ctrl-w command in readline's vi mode, which corresponds to</span><span>
</span><span id="line-315"></span><span class="hs-comment">-- the tty's werase character.</span><span>
</span><span id="line-316"></span><span class="annot"><a href="System.Console.Haskeline.Vi.html#wordErase"><span class="hs-identifier hs-type">wordErase</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="System.Console.Haskeline.Command.KillRing.html#KillHelper"><span class="hs-identifier hs-type">KillHelper</span></a></span><span>
</span><span id="line-317"></span><span id="wordErase"><span class="annot"><span class="annottext">wordErase :: KillHelper
</span><a href="System.Console.Haskeline.Vi.html#wordErase"><span class="hs-identifier hs-var hs-var">wordErase</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">(InsertMode -&gt; InsertMode) -&gt; KillHelper
</span><a href="System.Console.Haskeline.Command.KillRing.html#SimpleMove"><span class="hs-identifier hs-var">SimpleMove</span></a></span><span> </span><span class="annot"><span class="annottext">((InsertMode -&gt; InsertMode) -&gt; KillHelper)
-&gt; (InsertMode -&gt; InsertMode) -&gt; KillHelper
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="annot"><span class="annottext">(InsertMode -&gt; Bool) -&gt; InsertMode -&gt; InsertMode
</span><a href="System.Console.Haskeline.LineState.html#goLeftUntil"><span class="hs-identifier hs-var">goLeftUntil</span></a></span><span> </span><span class="annot"><span class="annottext">((InsertMode -&gt; Bool) -&gt; InsertMode -&gt; InsertMode)
-&gt; (InsertMode -&gt; Bool) -&gt; InsertMode -&gt; InsertMode
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="annot"><span class="annottext">(Char -&gt; Bool) -&gt; InsertMode -&gt; Bool
</span><a href="System.Console.Haskeline.LineState.html#atStart"><span class="hs-identifier hs-var">atStart</span></a></span><span> </span><span class="annot"><span class="annottext">Char -&gt; Bool
</span><a href="System.Console.Haskeline.Vi.html#isBigWordChar"><span class="hs-identifier hs-var">isBigWordChar</span></a></span><span>
</span><span id="line-318"></span><span>
</span><span id="line-319"></span><span class="hs-comment">------------------</span><span>
</span><span id="line-320"></span><span class="hs-comment">-- Matching braces</span><span>
</span><span id="line-321"></span><span>
</span><span id="line-322"></span><span class="annot"><a href="System.Console.Haskeline.Vi.html#findMatchingBrace"><span class="hs-identifier hs-type">findMatchingBrace</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="System.Console.Haskeline.LineState.html#InsertMode"><span class="hs-identifier hs-type">InsertMode</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="System.Console.Haskeline.LineState.html#InsertMode"><span class="hs-identifier hs-type">InsertMode</span></a></span><span>
</span><span id="line-323"></span><span id="findMatchingBrace"><span class="annot"><span class="annottext">findMatchingBrace :: InsertMode -&gt; InsertMode
</span><a href="System.Console.Haskeline.Vi.html#findMatchingBrace"><span class="hs-identifier hs-var hs-var">findMatchingBrace</span></a></span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="System.Console.Haskeline.LineState.html#IMode"><span class="hs-identifier hs-type">IMode</span></a></span><span> </span><span id="local-6989586621679098574"><span class="annot"><span class="annottext">[Grapheme]
</span><a href="#local-6989586621679098574"><span class="hs-identifier hs-var">xs</span></a></span></span><span> </span><span class="hs-special">(</span><span id="local-6989586621679098573"><span class="annot"><span class="annottext">Grapheme
</span><a href="#local-6989586621679098573"><span class="hs-identifier hs-var">y</span></a></span></span><span class="annot"><span class="hs-glyph hs-type">:</span></span><span id="local-6989586621679098572"><span class="annot"><span class="annottext">[Grapheme]
</span><a href="#local-6989586621679098572"><span class="hs-identifier hs-var">ys</span></a></span></span><span class="hs-special">)</span><span class="hs-special">)</span><span>
</span><span id="line-324"></span><span>    </span><span class="hs-glyph">|</span><span> </span><span class="annot"><a href="../../base/src/GHC.Maybe.html#Just"><span class="hs-identifier hs-type">Just</span></a></span><span> </span><span id="local-6989586621679098571"><span class="annot"><span class="annottext">Char
</span><a href="#local-6989586621679098571"><span class="hs-identifier hs-var">b</span></a></span></span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">Char -&gt; Maybe Char
</span><a href="System.Console.Haskeline.Vi.html#matchingRightBrace"><span class="hs-identifier hs-var">matchingRightBrace</span></a></span><span> </span><span class="annot"><span class="annottext">Char
</span><a href="#local-6989586621679098569"><span class="hs-identifier hs-var">yc</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-325"></span><span>      </span><span class="annot"><a href="../../base/src/GHC.Maybe.html#Just"><span class="hs-identifier hs-type">Just</span></a></span><span> </span><span class="hs-special">(</span><span class="hs-special">(</span><span id="local-6989586621679098568"><span class="annot"><span class="annottext">Grapheme
</span><a href="#local-6989586621679098568"><span class="hs-identifier hs-var">b'</span></a></span></span><span class="annot"><span class="hs-glyph hs-type">:</span></span><span id="local-6989586621679098567"><span class="annot"><span class="annottext">[Grapheme]
</span><a href="#local-6989586621679098567"><span class="hs-identifier hs-var">bs</span></a></span></span><span class="hs-special">)</span><span class="hs-special">,</span><span id="local-6989586621679098566"><span class="annot"><span class="annottext">[Grapheme]
</span><a href="#local-6989586621679098566"><span class="hs-identifier hs-var">ys'</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">Char -&gt; Char -&gt; [Grapheme] -&gt; Maybe ([Grapheme], [Grapheme])
</span><a href="System.Console.Haskeline.Vi.html#scanBraces"><span class="hs-identifier hs-var">scanBraces</span></a></span><span> </span><span class="annot"><span class="annottext">Char
</span><a href="#local-6989586621679098569"><span class="hs-identifier hs-var">yc</span></a></span><span> </span><span class="annot"><span class="annottext">Char
</span><a href="#local-6989586621679098571"><span class="hs-identifier hs-var">b</span></a></span><span> </span><span class="annot"><span class="annottext">[Grapheme]
</span><a href="#local-6989586621679098572"><span class="hs-identifier hs-var">ys</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">[Grapheme] -&gt; [Grapheme] -&gt; InsertMode
</span><a href="System.Console.Haskeline.LineState.html#IMode"><span class="hs-identifier hs-var">IMode</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">[Grapheme]
</span><a href="#local-6989586621679098567"><span class="hs-identifier hs-var">bs</span></a></span><span class="annot"><span class="annottext">[Grapheme] -&gt; [Grapheme] -&gt; [Grapheme]
forall a. [a] -&gt; [a] -&gt; [a]
</span><a href="../../base/src/GHC.Base.html#%2B%2B"><span class="hs-operator hs-var">++</span></a></span><span class="hs-special">[</span><span class="annot"><span class="annottext">Grapheme
</span><a href="#local-6989586621679098573"><span class="hs-identifier hs-var">y</span></a></span><span class="hs-special">]</span><span class="annot"><span class="annottext">[Grapheme] -&gt; [Grapheme] -&gt; [Grapheme]
forall a. [a] -&gt; [a] -&gt; [a]
</span><a href="../../base/src/GHC.Base.html#%2B%2B"><span class="hs-operator hs-var">++</span></a></span><span class="annot"><span class="annottext">[Grapheme]
</span><a href="#local-6989586621679098574"><span class="hs-identifier hs-var">xs</span></a></span><span class="hs-special">)</span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Grapheme
</span><a href="#local-6989586621679098568"><span class="hs-identifier hs-var">b'</span></a></span><span class="annot"><span class="annottext">Grapheme -&gt; [Grapheme] -&gt; [Grapheme]
forall a. a -&gt; [a] -&gt; [a]
</span><span class="hs-glyph hs-var">:</span></span><span class="annot"><span class="annottext">[Grapheme]
</span><a href="#local-6989586621679098566"><span class="hs-identifier hs-var">ys'</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-326"></span><span>    </span><span class="hs-glyph">|</span><span> </span><span class="annot"><a href="../../base/src/GHC.Maybe.html#Just"><span class="hs-identifier hs-type">Just</span></a></span><span> </span><span id="local-6989586621679098564"><span class="annot"><span class="annottext">Char
</span><a href="#local-6989586621679098564"><span class="hs-identifier hs-var">b</span></a></span></span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">Char -&gt; Maybe Char
</span><a href="System.Console.Haskeline.Vi.html#matchingLeftBrace"><span class="hs-identifier hs-var">matchingLeftBrace</span></a></span><span> </span><span class="annot"><span class="annottext">Char
</span><a href="#local-6989586621679098569"><span class="hs-identifier hs-var">yc</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-327"></span><span>      </span><span class="annot"><a href="../../base/src/GHC.Maybe.html#Just"><span class="hs-identifier hs-type">Just</span></a></span><span> </span><span class="hs-special">(</span><span id="local-6989586621679098562"><span class="annot"><span class="annottext">[Grapheme]
</span><a href="#local-6989586621679098562"><span class="hs-identifier hs-var">bs</span></a></span></span><span class="hs-special">,</span><span id="local-6989586621679098561"><span class="annot"><span class="annottext">[Grapheme]
</span><a href="#local-6989586621679098561"><span class="hs-identifier hs-var">xs'</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">Char -&gt; Char -&gt; [Grapheme] -&gt; Maybe ([Grapheme], [Grapheme])
</span><a href="System.Console.Haskeline.Vi.html#scanBraces"><span class="hs-identifier hs-var">scanBraces</span></a></span><span> </span><span class="annot"><span class="annottext">Char
</span><a href="#local-6989586621679098569"><span class="hs-identifier hs-var">yc</span></a></span><span> </span><span class="annot"><span class="annottext">Char
</span><a href="#local-6989586621679098564"><span class="hs-identifier hs-var">b</span></a></span><span> </span><span class="annot"><span class="annottext">[Grapheme]
</span><a href="#local-6989586621679098574"><span class="hs-identifier hs-var">xs</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">[Grapheme] -&gt; [Grapheme] -&gt; InsertMode
</span><a href="System.Console.Haskeline.LineState.html#IMode"><span class="hs-identifier hs-var">IMode</span></a></span><span> </span><span class="annot"><span class="annottext">[Grapheme]
</span><a href="#local-6989586621679098561"><span class="hs-identifier hs-var">xs'</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">[Grapheme]
</span><a href="#local-6989586621679098562"><span class="hs-identifier hs-var">bs</span></a></span><span> </span><span class="annot"><span class="annottext">[Grapheme] -&gt; [Grapheme] -&gt; [Grapheme]
forall a. [a] -&gt; [a] -&gt; [a]
</span><a href="../../base/src/GHC.Base.html#%2B%2B"><span class="hs-operator hs-var">++</span></a></span><span> </span><span class="hs-special">[</span><span class="annot"><span class="annottext">Grapheme
</span><a href="#local-6989586621679098573"><span class="hs-identifier hs-var">y</span></a></span><span class="hs-special">]</span><span class="annot"><span class="annottext">[Grapheme] -&gt; [Grapheme] -&gt; [Grapheme]
forall a. [a] -&gt; [a] -&gt; [a]
</span><a href="../../base/src/GHC.Base.html#%2B%2B"><span class="hs-operator hs-var">++</span></a></span><span class="annot"><span class="annottext">[Grapheme]
</span><a href="#local-6989586621679098572"><span class="hs-identifier hs-var">ys</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-328"></span><span>  </span><span class="hs-keyword">where</span><span> </span><span id="local-6989586621679098569"><span class="annot"><span class="annottext">yc :: Char
</span><a href="#local-6989586621679098569"><span class="hs-identifier hs-var hs-var">yc</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Grapheme -&gt; Char
</span><a href="System.Console.Haskeline.LineState.html#baseChar"><span class="hs-identifier hs-var">baseChar</span></a></span><span> </span><span class="annot"><span class="annottext">Grapheme
</span><a href="#local-6989586621679098573"><span class="hs-identifier hs-var">y</span></a></span><span>
</span><span id="line-329"></span><span class="annot"><a href="System.Console.Haskeline.Vi.html#findMatchingBrace"><span class="hs-identifier hs-var">findMatchingBrace</span></a></span><span> </span><span id="local-6989586621679098559"><span class="annot"><span class="annottext">InsertMode
</span><a href="#local-6989586621679098559"><span class="hs-identifier hs-var">im</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">InsertMode
</span><a href="#local-6989586621679098559"><span class="hs-identifier hs-var">im</span></a></span><span>
</span><span id="line-330"></span><span>
</span><span id="line-331"></span><span class="annot"><a href="System.Console.Haskeline.Vi.html#deleteMatchingBrace"><span class="hs-identifier hs-type">deleteMatchingBrace</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="System.Console.Haskeline.LineState.html#InsertMode"><span class="hs-identifier hs-type">InsertMode</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="hs-special">(</span><span class="hs-special">[</span><span class="annot"><a href="System.Console.Haskeline.LineState.html#Grapheme"><span class="hs-identifier hs-type">Grapheme</span></a></span><span class="hs-special">]</span><span class="hs-special">,</span><span class="annot"><a href="System.Console.Haskeline.LineState.html#InsertMode"><span class="hs-identifier hs-type">InsertMode</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-332"></span><span id="deleteMatchingBrace"><span class="annot"><span class="annottext">deleteMatchingBrace :: InsertMode -&gt; ([Grapheme], InsertMode)
</span><a href="System.Console.Haskeline.Vi.html#deleteMatchingBrace"><span class="hs-identifier hs-var hs-var">deleteMatchingBrace</span></a></span></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="System.Console.Haskeline.LineState.html#IMode"><span class="hs-identifier hs-type">IMode</span></a></span><span> </span><span id="local-6989586621679098558"><span class="annot"><span class="annottext">[Grapheme]
</span><a href="#local-6989586621679098558"><span class="hs-identifier hs-var">xs</span></a></span></span><span> </span><span class="hs-special">(</span><span id="local-6989586621679098557"><span class="annot"><span class="annottext">Grapheme
</span><a href="#local-6989586621679098557"><span class="hs-identifier hs-var">y</span></a></span></span><span class="annot"><span class="hs-glyph hs-type">:</span></span><span id="local-6989586621679098556"><span class="annot"><span class="annottext">[Grapheme]
</span><a href="#local-6989586621679098556"><span class="hs-identifier hs-var">ys</span></a></span></span><span class="hs-special">)</span><span class="hs-special">)</span><span>
</span><span id="line-333"></span><span>    </span><span class="hs-glyph">|</span><span> </span><span class="annot"><a href="../../base/src/GHC.Maybe.html#Just"><span class="hs-identifier hs-type">Just</span></a></span><span> </span><span id="local-6989586621679098555"><span class="annot"><span class="annottext">Char
</span><a href="#local-6989586621679098555"><span class="hs-identifier hs-var">b</span></a></span></span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">Char -&gt; Maybe Char
</span><a href="System.Console.Haskeline.Vi.html#matchingRightBrace"><span class="hs-identifier hs-var">matchingRightBrace</span></a></span><span> </span><span class="annot"><span class="annottext">Char
</span><a href="#local-6989586621679098554"><span class="hs-identifier hs-var">yc</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-334"></span><span>      </span><span class="annot"><a href="../../base/src/GHC.Maybe.html#Just"><span class="hs-identifier hs-type">Just</span></a></span><span> </span><span class="hs-special">(</span><span id="local-6989586621679098553"><span class="annot"><span class="annottext">[Grapheme]
</span><a href="#local-6989586621679098553"><span class="hs-identifier hs-var">bs</span></a></span></span><span class="hs-special">,</span><span id="local-6989586621679098552"><span class="annot"><span class="annottext">[Grapheme]
</span><a href="#local-6989586621679098552"><span class="hs-identifier hs-var">ys'</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">Char -&gt; Char -&gt; [Grapheme] -&gt; Maybe ([Grapheme], [Grapheme])
</span><a href="System.Console.Haskeline.Vi.html#scanBraces"><span class="hs-identifier hs-var">scanBraces</span></a></span><span> </span><span class="annot"><span class="annottext">Char
</span><a href="#local-6989586621679098554"><span class="hs-identifier hs-var">yc</span></a></span><span> </span><span class="annot"><span class="annottext">Char
</span><a href="#local-6989586621679098555"><span class="hs-identifier hs-var">b</span></a></span><span> </span><span class="annot"><span class="annottext">[Grapheme]
</span><a href="#local-6989586621679098556"><span class="hs-identifier hs-var">ys</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Grapheme
</span><a href="#local-6989586621679098557"><span class="hs-identifier hs-var">y</span></a></span><span> </span><span class="annot"><span class="annottext">Grapheme -&gt; [Grapheme] -&gt; [Grapheme]
forall a. a -&gt; [a] -&gt; [a]
</span><span class="hs-glyph hs-var">:</span></span><span> </span><span class="annot"><span class="annottext">[Grapheme] -&gt; [Grapheme]
forall a. [a] -&gt; [a]
</span><a href="../../base/src/GHC.List.html#reverse"><span class="hs-identifier hs-var">reverse</span></a></span><span> </span><span class="annot"><span class="annottext">[Grapheme]
</span><a href="#local-6989586621679098553"><span class="hs-identifier hs-var">bs</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">[Grapheme] -&gt; [Grapheme] -&gt; InsertMode
</span><a href="System.Console.Haskeline.LineState.html#IMode"><span class="hs-identifier hs-var">IMode</span></a></span><span> </span><span class="annot"><span class="annottext">[Grapheme]
</span><a href="#local-6989586621679098558"><span class="hs-identifier hs-var">xs</span></a></span><span> </span><span class="annot"><span class="annottext">[Grapheme]
</span><a href="#local-6989586621679098552"><span class="hs-identifier hs-var">ys'</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-335"></span><span>    </span><span class="hs-glyph">|</span><span> </span><span class="annot"><a href="../../base/src/GHC.Maybe.html#Just"><span class="hs-identifier hs-type">Just</span></a></span><span> </span><span id="local-6989586621679098551"><span class="annot"><span class="annottext">Char
</span><a href="#local-6989586621679098551"><span class="hs-identifier hs-var">b</span></a></span></span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">Char -&gt; Maybe Char
</span><a href="System.Console.Haskeline.Vi.html#matchingLeftBrace"><span class="hs-identifier hs-var">matchingLeftBrace</span></a></span><span> </span><span class="annot"><span class="annottext">Char
</span><a href="#local-6989586621679098554"><span class="hs-identifier hs-var">yc</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-336"></span><span>      </span><span class="annot"><a href="../../base/src/GHC.Maybe.html#Just"><span class="hs-identifier hs-type">Just</span></a></span><span> </span><span class="hs-special">(</span><span id="local-6989586621679098550"><span class="annot"><span class="annottext">[Grapheme]
</span><a href="#local-6989586621679098550"><span class="hs-identifier hs-var">bs</span></a></span></span><span class="hs-special">,</span><span id="local-6989586621679098549"><span class="annot"><span class="annottext">[Grapheme]
</span><a href="#local-6989586621679098549"><span class="hs-identifier hs-var">xs'</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">Char -&gt; Char -&gt; [Grapheme] -&gt; Maybe ([Grapheme], [Grapheme])
</span><a href="System.Console.Haskeline.Vi.html#scanBraces"><span class="hs-identifier hs-var">scanBraces</span></a></span><span> </span><span class="annot"><span class="annottext">Char
</span><a href="#local-6989586621679098554"><span class="hs-identifier hs-var">yc</span></a></span><span> </span><span class="annot"><span class="annottext">Char
</span><a href="#local-6989586621679098551"><span class="hs-identifier hs-var">b</span></a></span><span> </span><span class="annot"><span class="annottext">[Grapheme]
</span><a href="#local-6989586621679098558"><span class="hs-identifier hs-var">xs</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">[Grapheme]
</span><a href="#local-6989586621679098550"><span class="hs-identifier hs-var">bs</span></a></span><span> </span><span class="annot"><span class="annottext">[Grapheme] -&gt; [Grapheme] -&gt; [Grapheme]
forall a. [a] -&gt; [a] -&gt; [a]
</span><a href="../../base/src/GHC.Base.html#%2B%2B"><span class="hs-operator hs-var">++</span></a></span><span> </span><span class="hs-special">[</span><span class="annot"><span class="annottext">Grapheme
</span><a href="#local-6989586621679098557"><span class="hs-identifier hs-var">y</span></a></span><span class="hs-special">]</span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">[Grapheme] -&gt; [Grapheme] -&gt; InsertMode
</span><a href="System.Console.Haskeline.LineState.html#IMode"><span class="hs-identifier hs-var">IMode</span></a></span><span> </span><span class="annot"><span class="annottext">[Grapheme]
</span><a href="#local-6989586621679098549"><span class="hs-identifier hs-var">xs'</span></a></span><span> </span><span class="annot"><span class="annottext">[Grapheme]
</span><a href="#local-6989586621679098556"><span class="hs-identifier hs-var">ys</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-337"></span><span>  </span><span class="hs-keyword">where</span><span> </span><span id="local-6989586621679098554"><span class="annot"><span class="annottext">yc :: Char
</span><a href="#local-6989586621679098554"><span class="hs-identifier hs-var hs-var">yc</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Grapheme -&gt; Char
</span><a href="System.Console.Haskeline.LineState.html#baseChar"><span class="hs-identifier hs-var">baseChar</span></a></span><span> </span><span class="annot"><span class="annottext">Grapheme
</span><a href="#local-6989586621679098557"><span class="hs-identifier hs-var">y</span></a></span><span>
</span><span id="line-338"></span><span class="annot"><a href="System.Console.Haskeline.Vi.html#deleteMatchingBrace"><span class="hs-identifier hs-var">deleteMatchingBrace</span></a></span><span> </span><span id="local-6989586621679098548"><span class="annot"><span class="annottext">InsertMode
</span><a href="#local-6989586621679098548"><span class="hs-identifier hs-var">im</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="hs-special">(</span><span class="hs-special">[</span><span class="hs-special">]</span><span class="hs-special">,</span><span class="annot"><span class="annottext">InsertMode
</span><a href="#local-6989586621679098548"><span class="hs-identifier hs-var">im</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-339"></span><span>
</span><span id="line-340"></span><span>
</span><span id="line-341"></span><span class="annot"><a href="System.Console.Haskeline.Vi.html#scanBraces"><span class="hs-identifier hs-type">scanBraces</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><span class="hs-identifier hs-type">Char</span></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="hs-identifier hs-type">Char</span></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="hs-special">[</span><span class="annot"><a href="System.Console.Haskeline.LineState.html#Grapheme"><span class="hs-identifier hs-type">Grapheme</span></a></span><span class="hs-special">]</span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="../../base/src/GHC.Maybe.html#Maybe"><span class="hs-identifier hs-type">Maybe</span></a></span><span> </span><span class="hs-special">(</span><span class="hs-special">[</span><span class="annot"><a href="System.Console.Haskeline.LineState.html#Grapheme"><span class="hs-identifier hs-type">Grapheme</span></a></span><span class="hs-special">]</span><span class="hs-special">,</span><span class="hs-special">[</span><span class="annot"><a href="System.Console.Haskeline.LineState.html#Grapheme"><span class="hs-identifier hs-type">Grapheme</span></a></span><span class="hs-special">]</span><span class="hs-special">)</span><span>
</span><span id="line-342"></span><span id="scanBraces"><span class="annot"><span class="annottext">scanBraces :: Char -&gt; Char -&gt; [Grapheme] -&gt; Maybe ([Grapheme], [Grapheme])
</span><a href="System.Console.Haskeline.Vi.html#scanBraces"><span class="hs-identifier hs-var hs-var">scanBraces</span></a></span></span><span> </span><span id="local-6989586621679098547"><span class="annot"><span class="annottext">Char
</span><a href="#local-6989586621679098547"><span class="hs-identifier hs-var">c</span></a></span></span><span> </span><span id="local-6989586621679098546"><span class="annot"><span class="annottext">Char
</span><a href="#local-6989586621679098546"><span class="hs-identifier hs-var">d</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Int -&gt; [Grapheme] -&gt; [Grapheme] -&gt; Maybe ([Grapheme], [Grapheme])
forall {t}.
(Eq t, Num t) =&gt;
t -&gt; [Grapheme] -&gt; [Grapheme] -&gt; Maybe ([Grapheme], [Grapheme])
</span><a href="#local-6989586621679098545"><span class="hs-identifier hs-var">scanBraces'</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Int
</span><span class="hs-number">1</span></span><span class="hs-glyph">::</span><span class="annot"><span class="hs-identifier hs-type">Int</span></span><span class="hs-special">)</span><span> </span><span class="hs-special">[</span><span class="hs-special">]</span><span>
</span><span id="line-343"></span><span>    </span><span class="hs-keyword">where</span><span>
</span><span id="line-344"></span><span>        </span><span id="local-6989586621679098545"><span class="annot"><span class="annottext">scanBraces' :: t -&gt; [Grapheme] -&gt; [Grapheme] -&gt; Maybe ([Grapheme], [Grapheme])
</span><a href="#local-6989586621679098545"><span class="hs-identifier hs-var hs-var">scanBraces'</span></a></span></span><span> </span><span class="annot"><span class="annottext">t
</span><span class="hs-number">0</span></span><span> </span><span id="local-6989586621679098540"><span class="annot"><span class="annottext">[Grapheme]
</span><a href="#local-6989586621679098540"><span class="hs-identifier hs-var">bs</span></a></span></span><span> </span><span id="local-6989586621679098539"><span class="annot"><span class="annottext">[Grapheme]
</span><a href="#local-6989586621679098539"><span class="hs-identifier hs-var">xs</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">([Grapheme], [Grapheme]) -&gt; Maybe ([Grapheme], [Grapheme])
forall a. a -&gt; Maybe a
</span><a href="../../base/src/GHC.Maybe.html#Just"><span class="hs-identifier hs-var">Just</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">[Grapheme]
</span><a href="#local-6989586621679098540"><span class="hs-identifier hs-var">bs</span></a></span><span class="hs-special">,</span><span class="annot"><span class="annottext">[Grapheme]
</span><a href="#local-6989586621679098539"><span class="hs-identifier hs-var">xs</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-345"></span><span>        </span><span class="annot"><a href="#local-6989586621679098545"><span class="hs-identifier hs-var">scanBraces'</span></a></span><span> </span><span class="annot"><span class="annottext">t
</span><span class="hs-identifier">_</span></span><span> </span><span class="annot"><span class="annottext">[Grapheme]
</span><span class="hs-identifier">_</span></span><span> </span><span class="hs-special">[</span><span class="hs-special">]</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Maybe ([Grapheme], [Grapheme])
forall a. Maybe a
</span><a href="../../base/src/GHC.Maybe.html#Nothing"><span class="hs-identifier hs-var">Nothing</span></a></span><span>
</span><span id="line-346"></span><span>        </span><span class="annot"><a href="#local-6989586621679098545"><span class="hs-identifier hs-var">scanBraces'</span></a></span><span> </span><span id="local-6989586621679098538"><span class="annot"><span class="annottext">t
</span><a href="#local-6989586621679098538"><span class="hs-identifier hs-var">n</span></a></span></span><span> </span><span id="local-6989586621679098537"><span class="annot"><span class="annottext">[Grapheme]
</span><a href="#local-6989586621679098537"><span class="hs-identifier hs-var">bs</span></a></span></span><span> </span><span class="hs-special">(</span><span id="local-6989586621679098536"><span class="annot"><span class="annottext">Grapheme
</span><a href="#local-6989586621679098536"><span class="hs-identifier hs-var">x</span></a></span></span><span class="annot"><span class="hs-glyph hs-type">:</span></span><span id="local-6989586621679098535"><span class="annot"><span class="annottext">[Grapheme]
</span><a href="#local-6989586621679098535"><span class="hs-identifier hs-var">xs</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">t -&gt; [Grapheme] -&gt; [Grapheme] -&gt; Maybe ([Grapheme], [Grapheme])
</span><a href="#local-6989586621679098545"><span class="hs-identifier hs-var">scanBraces'</span></a></span><span> </span><span class="annot"><span class="annottext">t
</span><a href="#local-6989586621679098534"><span class="hs-identifier hs-var">m</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Grapheme
</span><a href="#local-6989586621679098536"><span class="hs-identifier hs-var">x</span></a></span><span class="annot"><span class="annottext">Grapheme -&gt; [Grapheme] -&gt; [Grapheme]
forall a. a -&gt; [a] -&gt; [a]
</span><span class="hs-glyph hs-var">:</span></span><span class="annot"><span class="annottext">[Grapheme]
</span><a href="#local-6989586621679098537"><span class="hs-identifier hs-var">bs</span></a></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">[Grapheme]
</span><a href="#local-6989586621679098535"><span class="hs-identifier hs-var">xs</span></a></span><span>
</span><span id="line-347"></span><span>            </span><span class="hs-keyword">where</span><span> </span><span id="local-6989586621679098534"><span class="annot"><span class="annottext">m :: t
</span><a href="#local-6989586621679098534"><span class="hs-identifier hs-var hs-var">m</span></a></span></span><span> </span><span class="hs-glyph">|</span><span> </span><span class="annot"><span class="annottext">Grapheme -&gt; Char
</span><a href="System.Console.Haskeline.LineState.html#baseChar"><span class="hs-identifier hs-var">baseChar</span></a></span><span> </span><span class="annot"><span class="annottext">Grapheme
</span><a href="#local-6989586621679098536"><span class="hs-identifier hs-var">x</span></a></span><span> </span><span class="annot"><span class="annottext">Char -&gt; Char -&gt; Bool
forall a. Eq a =&gt; a -&gt; a -&gt; Bool
</span><span class="hs-operator hs-var">==</span></span><span> </span><span class="annot"><span class="annottext">Char
</span><a href="#local-6989586621679098547"><span class="hs-identifier hs-var">c</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">t
</span><a href="#local-6989586621679098538"><span class="hs-identifier hs-var">n</span></a></span><span class="annot"><span class="annottext">t -&gt; t -&gt; t
forall a. Num a =&gt; a -&gt; a -&gt; a
</span><a href="../../base/src/GHC.Num.html#%2B"><span class="hs-operator hs-var">+</span></a></span><span class="annot"><span class="annottext">t
</span><span class="hs-number">1</span></span><span>
</span><span id="line-348"></span><span>                    </span><span class="hs-glyph">|</span><span> </span><span class="annot"><span class="annottext">Grapheme -&gt; Char
</span><a href="System.Console.Haskeline.LineState.html#baseChar"><span class="hs-identifier hs-var">baseChar</span></a></span><span> </span><span class="annot"><span class="annottext">Grapheme
</span><a href="#local-6989586621679098536"><span class="hs-identifier hs-var">x</span></a></span><span> </span><span class="annot"><span class="annottext">Char -&gt; Char -&gt; Bool
forall a. Eq a =&gt; a -&gt; a -&gt; Bool
</span><span class="hs-operator hs-var">==</span></span><span> </span><span class="annot"><span class="annottext">Char
</span><a href="#local-6989586621679098546"><span class="hs-identifier hs-var">d</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">t
</span><a href="#local-6989586621679098538"><span class="hs-identifier hs-var">n</span></a></span><span class="annot"><span class="annottext">t -&gt; t -&gt; t
forall a. Num a =&gt; a -&gt; a -&gt; a
</span><a href="../../base/src/GHC.Num.html#-"><span class="hs-glyph hs-var">-</span></a></span><span class="annot"><span class="annottext">t
</span><span class="hs-number">1</span></span><span>
</span><span id="line-349"></span><span>                    </span><span class="hs-glyph">|</span><span> </span><span class="annot"><span class="annottext">Bool
</span><a href="../../base/src/GHC.Base.html#otherwise"><span class="hs-identifier hs-var">otherwise</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">t
</span><a href="#local-6989586621679098538"><span class="hs-identifier hs-var">n</span></a></span><span>
</span><span id="line-350"></span><span>
</span><span id="line-351"></span><span class="annot"><a href="System.Console.Haskeline.Vi.html#matchingRightBrace"><span class="hs-identifier hs-type">matchingRightBrace</span></a></span><span class="hs-special">,</span><span> </span><span class="annot"><a href="System.Console.Haskeline.Vi.html#matchingLeftBrace"><span class="hs-identifier hs-type">matchingLeftBrace</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><span class="hs-identifier hs-type">Char</span></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="../../base/src/GHC.Maybe.html#Maybe"><span class="hs-identifier hs-type">Maybe</span></a></span><span> </span><span class="annot"><span class="hs-identifier hs-type">Char</span></span><span> </span><span>
</span><span id="line-352"></span><span id="matchingRightBrace"><span class="annot"><span class="annottext">matchingRightBrace :: Char -&gt; Maybe Char
</span><a href="System.Console.Haskeline.Vi.html#matchingRightBrace"><span class="hs-identifier hs-var hs-var">matchingRightBrace</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">(Char -&gt; [(Char, Char)] -&gt; Maybe Char)
-&gt; [(Char, Char)] -&gt; Char -&gt; Maybe Char
forall a b c. (a -&gt; b -&gt; c) -&gt; b -&gt; a -&gt; c
</span><a href="../../base/src/GHC.Base.html#flip"><span class="hs-identifier hs-var">flip</span></a></span><span> </span><span class="annot"><span class="annottext">Char -&gt; [(Char, Char)] -&gt; Maybe Char
forall a b. Eq a =&gt; a -&gt; [(a, b)] -&gt; Maybe b
</span><a href="../../base/src/GHC.List.html#lookup"><span class="hs-identifier hs-var">lookup</span></a></span><span> </span><span class="annot"><span class="annottext">[(Char, Char)]
</span><a href="System.Console.Haskeline.Vi.html#braceList"><span class="hs-identifier hs-var">braceList</span></a></span><span>
</span><span id="line-353"></span><span id="matchingLeftBrace"><span class="annot"><span class="annottext">matchingLeftBrace :: Char -&gt; Maybe Char
</span><a href="System.Console.Haskeline.Vi.html#matchingLeftBrace"><span class="hs-identifier hs-var hs-var">matchingLeftBrace</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">(Char -&gt; [(Char, Char)] -&gt; Maybe Char)
-&gt; [(Char, Char)] -&gt; Char -&gt; Maybe Char
forall a b c. (a -&gt; b -&gt; c) -&gt; b -&gt; a -&gt; c
</span><a href="../../base/src/GHC.Base.html#flip"><span class="hs-identifier hs-var">flip</span></a></span><span> </span><span class="annot"><span class="annottext">Char -&gt; [(Char, Char)] -&gt; Maybe Char
forall a b. Eq a =&gt; a -&gt; [(a, b)] -&gt; Maybe b
</span><a href="../../base/src/GHC.List.html#lookup"><span class="hs-identifier hs-var">lookup</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">((Char, Char) -&gt; (Char, Char)) -&gt; [(Char, Char)] -&gt; [(Char, Char)]
forall a b. (a -&gt; b) -&gt; [a] -&gt; [b]
</span><a href="../../base/src/GHC.Base.html#map"><span class="hs-identifier hs-var">map</span></a></span><span> </span><span class="hs-special">(</span><span class="hs-glyph">\</span><span class="hs-special">(</span><span id="local-6989586621679098523"><span class="annot"><span class="annottext">Char
</span><a href="#local-6989586621679098523"><span class="hs-identifier hs-var">c</span></a></span></span><span class="hs-special">,</span><span id="local-6989586621679098522"><span class="annot"><span class="annottext">Char
</span><a href="#local-6989586621679098522"><span class="hs-identifier hs-var">d</span></a></span></span><span class="hs-special">)</span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Char
</span><a href="#local-6989586621679098522"><span class="hs-identifier hs-var">d</span></a></span><span class="hs-special">,</span><span class="annot"><span class="annottext">Char
</span><a href="#local-6989586621679098523"><span class="hs-identifier hs-var">c</span></a></span><span class="hs-special">)</span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">[(Char, Char)]
</span><a href="System.Console.Haskeline.Vi.html#braceList"><span class="hs-identifier hs-var">braceList</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-354"></span><span>
</span><span id="line-355"></span><span class="annot"><a href="System.Console.Haskeline.Vi.html#braceList"><span class="hs-identifier hs-type">braceList</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="hs-special">[</span><span class="hs-special">(</span><span class="annot"><span class="hs-identifier hs-type">Char</span></span><span class="hs-special">,</span><span class="annot"><span class="hs-identifier hs-type">Char</span></span><span class="hs-special">)</span><span class="hs-special">]</span><span>
</span><span id="line-356"></span><span id="braceList"><span class="annot"><span class="annottext">braceList :: [(Char, Char)]
</span><a href="System.Console.Haskeline.Vi.html#braceList"><span class="hs-identifier hs-var hs-var">braceList</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="hs-special">[</span><span class="hs-special">(</span><span class="annot"><span class="annottext">Char
</span><span class="hs-char">'('</span></span><span class="hs-special">,</span><span class="annot"><span class="annottext">Char
</span><span class="hs-char">')'</span></span><span class="hs-special">)</span><span class="hs-special">,</span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Char
</span><span class="hs-char">'['</span></span><span class="hs-special">,</span><span class="annot"><span class="annottext">Char
</span><span class="hs-char">']'</span></span><span class="hs-special">)</span><span class="hs-special">,</span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">Char
</span><span class="hs-char">'{'</span></span><span class="hs-special">,</span><span class="annot"><span class="annottext">Char
</span><span class="hs-char">'}'</span></span><span class="hs-special">)</span><span class="hs-special">]</span><span>
</span><span id="line-357"></span><span>
</span><span id="line-358"></span><span class="hs-comment">---------------</span><span>
</span><span id="line-359"></span><span class="hs-comment">-- Replace mode</span><span>
</span><span id="line-360"></span><span class="annot"><a href="System.Console.Haskeline.Vi.html#replaceLoop"><span class="hs-identifier hs-type">replaceLoop</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="System.Console.Haskeline.Vi.html#InputCmd"><span class="hs-identifier hs-type">InputCmd</span></a></span><span> </span><span class="annot"><a href="System.Console.Haskeline.LineState.html#CommandMode"><span class="hs-identifier hs-type">CommandMode</span></a></span><span> </span><span class="annot"><a href="System.Console.Haskeline.LineState.html#CommandMode"><span class="hs-identifier hs-type">CommandMode</span></a></span><span>
</span><span id="line-361"></span><span id="replaceLoop"><span class="annot"><span class="annottext">replaceLoop :: InputCmd CommandMode CommandMode
</span><a href="System.Console.Haskeline.Vi.html#replaceLoop"><span class="hs-identifier hs-var hs-var">replaceLoop</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Command (ViT m) CommandMode CommandMode
forall s (m :: * -&gt; *).
(Save s, MonadState Undo m) =&gt;
Command m s s
</span><a href="System.Console.Haskeline.Command.Undo.html#saveForUndo"><span class="hs-identifier hs-var">saveForUndo</span></a></span><span> </span><span class="annot"><span class="annottext">Command (ViT m) CommandMode CommandMode
-&gt; Command (ViT m) CommandMode CommandMode
-&gt; Command (ViT m) CommandMode CommandMode
forall (m :: * -&gt; *) s t u.
Monad m =&gt;
Command m s t -&gt; Command m t u -&gt; Command m s u
</span><a href="System.Console.Haskeline.Command.html#%3E%7C%3E"><span class="hs-operator hs-var">&gt;|&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">(CommandMode -&gt; InsertMode)
-&gt; Command (ViT m) CommandMode InsertMode
forall t (m :: * -&gt; *) s.
(LineState t, Monad m) =&gt;
(s -&gt; t) -&gt; Command m s t
</span><a href="System.Console.Haskeline.Command.html#change"><span class="hs-identifier hs-var">change</span></a></span><span> </span><span class="annot"><span class="annottext">CommandMode -&gt; InsertMode
</span><a href="System.Console.Haskeline.LineState.html#insertFromCommandMode"><span class="hs-identifier hs-var">insertFromCommandMode</span></a></span><span> </span><span class="annot"><span class="annottext">Command (ViT m) CommandMode InsertMode
-&gt; Command (ViT m) InsertMode CommandMode
-&gt; Command (ViT m) CommandMode CommandMode
forall (m :: * -&gt; *) s t u.
Monad m =&gt;
Command m s t -&gt; Command m t u -&gt; Command m s u
</span><a href="System.Console.Haskeline.Command.html#%3E%7C%3E"><span class="hs-operator hs-var">&gt;|&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">Command (ViT m) InsertMode InsertMode
</span><a href="#local-6989586621679098499"><span class="hs-identifier hs-var">loop</span></a></span><span>
</span><span id="line-362"></span><span>                </span><span class="annot"><span class="annottext">Command (ViT m) InsertMode InsertMode
-&gt; Command (ViT m) InsertMode CommandMode
-&gt; Command (ViT m) InsertMode CommandMode
forall (m :: * -&gt; *) s t u.
Monad m =&gt;
Command m s t -&gt; Command m t u -&gt; Command m s u
</span><a href="System.Console.Haskeline.Command.html#%3E%7C%3E"><span class="hs-operator hs-var">&gt;|&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">(InsertMode -&gt; CommandMode)
-&gt; Command (ViT m) InsertMode CommandMode
forall t (m :: * -&gt; *) s.
(LineState t, Monad m) =&gt;
(s -&gt; t) -&gt; Command m s t
</span><a href="System.Console.Haskeline.Command.html#change"><span class="hs-identifier hs-var">change</span></a></span><span> </span><span class="annot"><span class="annottext">InsertMode -&gt; CommandMode
</span><a href="System.Console.Haskeline.LineState.html#enterCommandModeRight"><span class="hs-identifier hs-var">enterCommandModeRight</span></a></span><span>
</span><span id="line-363"></span><span>    </span><span class="hs-keyword">where</span><span>
</span><span id="line-364"></span><span>        </span><span id="local-6989586621679098499"><span class="annot"><span class="annottext">loop :: Command (ViT m) InsertMode InsertMode
</span><a href="#local-6989586621679098499"><span class="hs-identifier hs-var hs-var">loop</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">KeyCommand (ViT m) InsertMode InsertMode
-&gt; Command (ViT m) InsertMode InsertMode
forall (m :: * -&gt; *) s.
Monad m =&gt;
KeyCommand m s s -&gt; Command m s s
</span><a href="System.Console.Haskeline.Command.html#try"><span class="hs-identifier hs-var">try</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">KeyCommand (ViT m) InsertMode InsertMode
</span><a href="#local-6989586621679098495"><span class="hs-identifier hs-var">oneReplaceCmd</span></a></span><span> </span><span class="annot"><span class="annottext">KeyCommand (ViT m) InsertMode InsertMode
-&gt; Command (ViT m) InsertMode InsertMode
-&gt; KeyCommand (ViT m) InsertMode InsertMode
forall (m :: * -&gt; *) s t u.
Monad m =&gt;
KeyCommand m s t -&gt; Command m t u -&gt; KeyCommand m s u
</span><a href="System.Console.Haskeline.Command.html#%3E%2B%3E"><span class="hs-operator hs-var">&gt;+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">Command (ViT m) InsertMode InsertMode
</span><a href="#local-6989586621679098499"><span class="hs-identifier hs-var">loop</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-365"></span><span>        </span><span id="local-6989586621679098495"><span class="annot"><span class="annottext">oneReplaceCmd :: KeyCommand (ViT m) InsertMode InsertMode
</span><a href="#local-6989586621679098495"><span class="hs-identifier hs-var hs-var">oneReplaceCmd</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">[KeyCommand (ViT m) InsertMode InsertMode]
-&gt; KeyCommand (ViT m) InsertMode InsertMode
forall a. [KeyMap a] -&gt; KeyMap a
</span><a href="System.Console.Haskeline.Command.html#choiceCmd"><span class="hs-identifier hs-var">choiceCmd</span></a></span><span> </span><span class="hs-special">[</span><span>
</span><span id="line-366"></span><span>                </span><span class="annot"><span class="annottext">BaseKey -&gt; Key
</span><a href="System.Console.Haskeline.Key.html#simpleKey"><span class="hs-identifier hs-var">simpleKey</span></a></span><span> </span><span class="annot"><span class="annottext">BaseKey
</span><a href="System.Console.Haskeline.Key.html#LeftKey"><span class="hs-identifier hs-var">LeftKey</span></a></span><span> </span><span class="annot"><span class="annottext">Key
-&gt; Command (ViT m) InsertMode InsertMode
-&gt; KeyCommand (ViT m) InsertMode InsertMode
forall a. Key -&gt; a -&gt; KeyMap a
</span><a href="System.Console.Haskeline.Command.html#%2B%3E"><span class="hs-operator hs-var">+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">(InsertMode -&gt; InsertMode) -&gt; Command (ViT m) InsertMode InsertMode
forall t (m :: * -&gt; *) s.
(LineState t, Monad m) =&gt;
(s -&gt; t) -&gt; Command m s t
</span><a href="System.Console.Haskeline.Command.html#change"><span class="hs-identifier hs-var">change</span></a></span><span> </span><span class="annot"><span class="annottext">InsertMode -&gt; InsertMode
forall s. Move s =&gt; s -&gt; s
</span><a href="System.Console.Haskeline.LineState.html#goLeft"><span class="hs-identifier hs-var">goLeft</span></a></span><span>
</span><span id="line-367"></span><span>                </span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">BaseKey -&gt; Key
</span><a href="System.Console.Haskeline.Key.html#simpleKey"><span class="hs-identifier hs-var">simpleKey</span></a></span><span> </span><span class="annot"><span class="annottext">BaseKey
</span><a href="System.Console.Haskeline.Key.html#RightKey"><span class="hs-identifier hs-var">RightKey</span></a></span><span> </span><span class="annot"><span class="annottext">Key
-&gt; Command (ViT m) InsertMode InsertMode
-&gt; KeyCommand (ViT m) InsertMode InsertMode
forall a. Key -&gt; a -&gt; KeyMap a
</span><a href="System.Console.Haskeline.Command.html#%2B%3E"><span class="hs-operator hs-var">+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">(InsertMode -&gt; InsertMode) -&gt; Command (ViT m) InsertMode InsertMode
forall t (m :: * -&gt; *) s.
(LineState t, Monad m) =&gt;
(s -&gt; t) -&gt; Command m s t
</span><a href="System.Console.Haskeline.Command.html#change"><span class="hs-identifier hs-var">change</span></a></span><span> </span><span class="annot"><span class="annottext">InsertMode -&gt; InsertMode
forall s. Move s =&gt; s -&gt; s
</span><a href="System.Console.Haskeline.LineState.html#goRight"><span class="hs-identifier hs-var">goRight</span></a></span><span>
</span><span id="line-368"></span><span>                </span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">(Char -&gt; InsertMode -&gt; InsertMode)
-&gt; KeyCommand (ViT m) InsertMode InsertMode
forall t (m :: * -&gt; *) s.
(LineState t, Monad m) =&gt;
(Char -&gt; s -&gt; t) -&gt; KeyCommand m s t
</span><a href="System.Console.Haskeline.Command.html#changeFromChar"><span class="hs-identifier hs-var">changeFromChar</span></a></span><span> </span><span class="annot"><span class="annottext">Char -&gt; InsertMode -&gt; InsertMode
</span><a href="System.Console.Haskeline.LineState.html#replaceCharIM"><span class="hs-identifier hs-var">replaceCharIM</span></a></span><span>
</span><span id="line-369"></span><span>                </span><span class="hs-special">]</span><span>
</span><span id="line-370"></span><span>
</span><span id="line-371"></span><span>
</span><span id="line-372"></span><span class="hs-comment">---------------------------</span><span>
</span><span id="line-373"></span><span class="hs-comment">-- Saving previous commands</span><span>
</span><span id="line-374"></span><span>
</span><span id="line-375"></span><span id="local-6989586621679099522"><span id="local-6989586621679099523"><span class="annot"><a href="System.Console.Haskeline.Vi.html#storeLastCmd"><span class="hs-identifier hs-type">storeLastCmd</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="../../base/src/GHC.Base.html#Monad"><span class="hs-identifier hs-type">Monad</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679099523"><span class="hs-identifier hs-type">m</span></a></span><span> </span><span class="hs-glyph">=&gt;</span><span> </span><span class="annot"><a href="System.Console.Haskeline.Vi.html#SavedCommand"><span class="hs-identifier hs-type">SavedCommand</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679099523"><span class="hs-identifier hs-type">m</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="System.Console.Haskeline.Command.html#Command"><span class="hs-identifier hs-type">Command</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="System.Console.Haskeline.Vi.html#ViT"><span class="hs-identifier hs-type">ViT</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679099523"><span class="hs-identifier hs-type">m</span></a></span><span class="hs-special">)</span><span> </span><span class="annot"><a href="#local-6989586621679099522"><span class="hs-identifier hs-type">s</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679099522"><span class="hs-identifier hs-type">s</span></a></span></span></span><span>
</span><span id="line-376"></span><span id="storeLastCmd"><span class="annot"><span class="annottext">storeLastCmd :: forall (m :: * -&gt; *) s.
Monad m =&gt;
SavedCommand m -&gt; Command (ViT m) s s
</span><a href="System.Console.Haskeline.Vi.html#storeLastCmd"><span class="hs-identifier hs-var hs-var">storeLastCmd</span></a></span></span><span> </span><span id="local-6989586621679098472"><span class="annot"><span class="annottext">SavedCommand m
</span><a href="#local-6989586621679098472"><span class="hs-identifier hs-var">act</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="hs-glyph">\</span><span id="local-6989586621679098471"><span class="annot"><span class="annottext">s
</span><a href="#local-6989586621679098471"><span class="hs-identifier hs-var">s</span></a></span></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="hs-keyword">do</span><span>
</span><span id="line-377"></span><span>        </span><span class="annot"><span class="annottext">(ViState m -&gt; ViState m) -&gt; CmdM (ViT m) ()
forall s (m :: * -&gt; *). MonadState s m =&gt; (s -&gt; s) -&gt; m ()
</span><a href="System.Console.Haskeline.Monads.html#modify"><span class="hs-identifier hs-var">modify</span></a></span><span> </span><span class="annot"><span class="annottext">((ViState m -&gt; ViState m) -&gt; CmdM (ViT m) ())
-&gt; (ViState m -&gt; ViState m) -&gt; CmdM (ViT m) ()
forall a b. (a -&gt; b) -&gt; a -&gt; b
</span><a href="../../base/src/GHC.Base.html#%24"><span class="hs-operator hs-var">$</span></a></span><span> </span><span class="hs-glyph">\</span><span id="local-6989586621679098469"><span class="annot"><span class="annottext">ViState m
</span><a href="#local-6989586621679098469"><span class="hs-identifier hs-var">vs</span></a></span></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">ViState m
</span><a href="#local-6989586621679098469"><span class="hs-identifier hs-var">vs</span></a></span><span> </span><span class="hs-special">{</span><span class="annot"><span class="annottext">lastCommand :: SavedCommand m
</span><a href="System.Console.Haskeline.Vi.html#lastCommand"><span class="hs-identifier hs-var">lastCommand</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">SavedCommand m
</span><a href="#local-6989586621679098472"><span class="hs-identifier hs-var">act</span></a></span><span class="hs-special">}</span><span>
</span><span id="line-378"></span><span>        </span><span class="annot"><span class="annottext">s -&gt; CmdM (ViT m) s
forall (m :: * -&gt; *) a. Monad m =&gt; a -&gt; m a
</span><a href="../../base/src/GHC.Base.html#return"><span class="hs-identifier hs-var">return</span></a></span><span> </span><span class="annot"><span class="annottext">s
</span><a href="#local-6989586621679098471"><span class="hs-identifier hs-var">s</span></a></span><span>
</span><span id="line-379"></span><span>
</span><span id="line-380"></span><span id="local-6989586621679099427"><span class="annot"><a href="System.Console.Haskeline.Vi.html#storedAction"><span class="hs-identifier hs-type">storedAction</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="../../base/src/GHC.Base.html#Monad"><span class="hs-identifier hs-type">Monad</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679099427"><span class="hs-identifier hs-type">m</span></a></span><span> </span><span class="hs-glyph">=&gt;</span><span> </span><span class="annot"><a href="System.Console.Haskeline.Vi.html#SavedCommand"><span class="hs-identifier hs-type">SavedCommand</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679099427"><span class="hs-identifier hs-type">m</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="System.Console.Haskeline.Vi.html#SavedCommand"><span class="hs-identifier hs-type">SavedCommand</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679099427"><span class="hs-identifier hs-type">m</span></a></span></span><span>
</span><span id="line-381"></span><span id="storedAction"><span class="annot"><span class="annottext">storedAction :: forall (m :: * -&gt; *). Monad m =&gt; SavedCommand m -&gt; SavedCommand m
</span><a href="System.Console.Haskeline.Vi.html#storedAction"><span class="hs-identifier hs-var hs-var">storedAction</span></a></span></span><span> </span><span id="local-6989586621679098458"><span class="annot"><span class="annottext">SavedCommand m
</span><a href="#local-6989586621679098458"><span class="hs-identifier hs-var">act</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">SavedCommand m
-&gt; Command (ViT m) (ArgMode CommandMode) (ArgMode CommandMode)
forall (m :: * -&gt; *) s.
Monad m =&gt;
SavedCommand m -&gt; Command (ViT m) s s
</span><a href="System.Console.Haskeline.Vi.html#storeLastCmd"><span class="hs-identifier hs-var">storeLastCmd</span></a></span><span> </span><span class="annot"><span class="annottext">SavedCommand m
</span><a href="#local-6989586621679098458"><span class="hs-identifier hs-var">act</span></a></span><span> </span><span class="annot"><span class="annottext">Command (ViT m) (ArgMode CommandMode) (ArgMode CommandMode)
-&gt; SavedCommand m -&gt; SavedCommand m
forall (m :: * -&gt; *) s t u.
Monad m =&gt;
Command m s t -&gt; Command m t u -&gt; Command m s u
</span><a href="System.Console.Haskeline.Command.html#%3E%7C%3E"><span class="hs-operator hs-var">&gt;|&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">SavedCommand m
</span><a href="#local-6989586621679098458"><span class="hs-identifier hs-var">act</span></a></span><span>
</span><span id="line-382"></span><span>
</span><span id="line-383"></span><span id="local-6989586621679099460"><span class="annot"><a href="System.Console.Haskeline.Vi.html#storedCmdAction"><span class="hs-identifier hs-type">storedCmdAction</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="../../base/src/GHC.Base.html#Monad"><span class="hs-identifier hs-type">Monad</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679099460"><span class="hs-identifier hs-type">m</span></a></span><span> </span><span class="hs-glyph">=&gt;</span><span> </span><span class="annot"><a href="System.Console.Haskeline.Command.html#Command"><span class="hs-identifier hs-type">Command</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="System.Console.Haskeline.Vi.html#ViT"><span class="hs-identifier hs-type">ViT</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679099460"><span class="hs-identifier hs-type">m</span></a></span><span class="hs-special">)</span><span> </span><span class="hs-special">(</span><span class="annot"><a href="System.Console.Haskeline.LineState.html#ArgMode"><span class="hs-identifier hs-type">ArgMode</span></a></span><span> </span><span class="annot"><a href="System.Console.Haskeline.LineState.html#CommandMode"><span class="hs-identifier hs-type">CommandMode</span></a></span><span class="hs-special">)</span><span> </span><span class="annot"><a href="System.Console.Haskeline.LineState.html#CommandMode"><span class="hs-identifier hs-type">CommandMode</span></a></span><span>
</span><span id="line-384"></span><span>                            </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="System.Console.Haskeline.Command.html#Command"><span class="hs-identifier hs-type">Command</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="System.Console.Haskeline.Vi.html#ViT"><span class="hs-identifier hs-type">ViT</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679099460"><span class="hs-identifier hs-type">m</span></a></span><span class="hs-special">)</span><span> </span><span class="hs-special">(</span><span class="annot"><a href="System.Console.Haskeline.LineState.html#ArgMode"><span class="hs-identifier hs-type">ArgMode</span></a></span><span> </span><span class="annot"><a href="System.Console.Haskeline.LineState.html#CommandMode"><span class="hs-identifier hs-type">CommandMode</span></a></span><span class="hs-special">)</span><span> </span><span class="annot"><a href="System.Console.Haskeline.LineState.html#CommandMode"><span class="hs-identifier hs-type">CommandMode</span></a></span></span><span>
</span><span id="line-385"></span><span id="storedCmdAction"><span class="annot"><span class="annottext">storedCmdAction :: forall (m :: * -&gt; *).
Monad m =&gt;
Command (ViT m) (ArgMode CommandMode) CommandMode
-&gt; Command (ViT m) (ArgMode CommandMode) CommandMode
</span><a href="System.Console.Haskeline.Vi.html#storedCmdAction"><span class="hs-identifier hs-var hs-var">storedCmdAction</span></a></span></span><span> </span><span id="local-6989586621679098447"><span class="annot"><span class="annottext">Command (ViT m) (ArgMode CommandMode) CommandMode
</span><a href="#local-6989586621679098447"><span class="hs-identifier hs-var">act</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">SavedCommand m
-&gt; Command (ViT m) (ArgMode CommandMode) (ArgMode CommandMode)
forall (m :: * -&gt; *) s.
Monad m =&gt;
SavedCommand m -&gt; Command (ViT m) s s
</span><a href="System.Console.Haskeline.Vi.html#storeLastCmd"><span class="hs-identifier hs-var">storeLastCmd</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">(CommandMode -&gt; Either CommandMode InsertMode)
-&gt; CmdM (ViT m) CommandMode
-&gt; CmdM (ViT m) (Either CommandMode InsertMode)
forall (m :: * -&gt; *) a1 r. Monad m =&gt; (a1 -&gt; r) -&gt; m a1 -&gt; m r
</span><a href="../../base/src/GHC.Base.html#liftM"><span class="hs-identifier hs-var">liftM</span></a></span><span> </span><span class="annot"><span class="annottext">CommandMode -&gt; Either CommandMode InsertMode
forall a b. a -&gt; Either a b
</span><a href="../../base/src/Data.Either.html#Left"><span class="hs-identifier hs-var">Left</span></a></span><span> </span><span class="annot"><span class="annottext">(CmdM (ViT m) CommandMode
 -&gt; CmdM (ViT m) (Either CommandMode InsertMode))
-&gt; Command (ViT m) (ArgMode CommandMode) CommandMode
-&gt; SavedCommand m
forall b c a. (b -&gt; c) -&gt; (a -&gt; b) -&gt; a -&gt; c
</span><a href="../../base/src/GHC.Base.html#."><span class="hs-operator hs-var">.</span></a></span><span> </span><span class="annot"><span class="annottext">Command (ViT m) (ArgMode CommandMode) CommandMode
</span><a href="#local-6989586621679098447"><span class="hs-identifier hs-var">act</span></a></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">Command (ViT m) (ArgMode CommandMode) (ArgMode CommandMode)
-&gt; Command (ViT m) (ArgMode CommandMode) CommandMode
-&gt; Command (ViT m) (ArgMode CommandMode) CommandMode
forall (m :: * -&gt; *) s t u.
Monad m =&gt;
Command m s t -&gt; Command m t u -&gt; Command m s u
</span><a href="System.Console.Haskeline.Command.html#%3E%7C%3E"><span class="hs-operator hs-var">&gt;|&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">Command (ViT m) (ArgMode CommandMode) CommandMode
</span><a href="#local-6989586621679098447"><span class="hs-identifier hs-var">act</span></a></span><span>
</span><span id="line-386"></span><span>
</span><span id="line-387"></span><span id="local-6989586621679099424"><span class="annot"><a href="System.Console.Haskeline.Vi.html#storedIAction"><span class="hs-identifier hs-type">storedIAction</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="../../base/src/GHC.Base.html#Monad"><span class="hs-identifier hs-type">Monad</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679099424"><span class="hs-identifier hs-type">m</span></a></span><span> </span><span class="hs-glyph">=&gt;</span><span> </span><span class="annot"><a href="System.Console.Haskeline.Command.html#Command"><span class="hs-identifier hs-type">Command</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="System.Console.Haskeline.Vi.html#ViT"><span class="hs-identifier hs-type">ViT</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679099424"><span class="hs-identifier hs-type">m</span></a></span><span class="hs-special">)</span><span> </span><span class="hs-special">(</span><span class="annot"><a href="System.Console.Haskeline.LineState.html#ArgMode"><span class="hs-identifier hs-type">ArgMode</span></a></span><span> </span><span class="annot"><a href="System.Console.Haskeline.LineState.html#CommandMode"><span class="hs-identifier hs-type">CommandMode</span></a></span><span class="hs-special">)</span><span> </span><span class="annot"><a href="System.Console.Haskeline.LineState.html#InsertMode"><span class="hs-identifier hs-type">InsertMode</span></a></span><span>
</span><span id="line-388"></span><span>                        </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="System.Console.Haskeline.Command.html#Command"><span class="hs-identifier hs-type">Command</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="System.Console.Haskeline.Vi.html#ViT"><span class="hs-identifier hs-type">ViT</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679099424"><span class="hs-identifier hs-type">m</span></a></span><span class="hs-special">)</span><span> </span><span class="hs-special">(</span><span class="annot"><a href="System.Console.Haskeline.LineState.html#ArgMode"><span class="hs-identifier hs-type">ArgMode</span></a></span><span> </span><span class="annot"><a href="System.Console.Haskeline.LineState.html#CommandMode"><span class="hs-identifier hs-type">CommandMode</span></a></span><span class="hs-special">)</span><span> </span><span class="annot"><a href="System.Console.Haskeline.LineState.html#InsertMode"><span class="hs-identifier hs-type">InsertMode</span></a></span></span><span>
</span><span id="line-389"></span><span id="storedIAction"><span class="annot"><span class="annottext">storedIAction :: forall (m :: * -&gt; *).
Monad m =&gt;
Command (ViT m) (ArgMode CommandMode) InsertMode
-&gt; Command (ViT m) (ArgMode CommandMode) InsertMode
</span><a href="System.Console.Haskeline.Vi.html#storedIAction"><span class="hs-identifier hs-var hs-var">storedIAction</span></a></span></span><span> </span><span id="local-6989586621679098435"><span class="annot"><span class="annottext">Command (ViT m) (ArgMode CommandMode) InsertMode
</span><a href="#local-6989586621679098435"><span class="hs-identifier hs-var">act</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">SavedCommand m
-&gt; Command (ViT m) (ArgMode CommandMode) (ArgMode CommandMode)
forall (m :: * -&gt; *) s.
Monad m =&gt;
SavedCommand m -&gt; Command (ViT m) s s
</span><a href="System.Console.Haskeline.Vi.html#storeLastCmd"><span class="hs-identifier hs-var">storeLastCmd</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">(InsertMode -&gt; Either CommandMode InsertMode)
-&gt; CmdM (ViT m) InsertMode
-&gt; CmdM (ViT m) (Either CommandMode InsertMode)
forall (m :: * -&gt; *) a1 r. Monad m =&gt; (a1 -&gt; r) -&gt; m a1 -&gt; m r
</span><a href="../../base/src/GHC.Base.html#liftM"><span class="hs-identifier hs-var">liftM</span></a></span><span> </span><span class="annot"><span class="annottext">InsertMode -&gt; Either CommandMode InsertMode
forall a b. b -&gt; Either a b
</span><a href="../../base/src/Data.Either.html#Right"><span class="hs-identifier hs-var">Right</span></a></span><span> </span><span class="annot"><span class="annottext">(CmdM (ViT m) InsertMode
 -&gt; CmdM (ViT m) (Either CommandMode InsertMode))
-&gt; Command (ViT m) (ArgMode CommandMode) InsertMode
-&gt; SavedCommand m
forall b c a. (b -&gt; c) -&gt; (a -&gt; b) -&gt; a -&gt; c
</span><a href="../../base/src/GHC.Base.html#."><span class="hs-operator hs-var">.</span></a></span><span> </span><span class="annot"><span class="annottext">Command (ViT m) (ArgMode CommandMode) InsertMode
</span><a href="#local-6989586621679098435"><span class="hs-identifier hs-var">act</span></a></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">Command (ViT m) (ArgMode CommandMode) (ArgMode CommandMode)
-&gt; Command (ViT m) (ArgMode CommandMode) InsertMode
-&gt; Command (ViT m) (ArgMode CommandMode) InsertMode
forall (m :: * -&gt; *) s t u.
Monad m =&gt;
Command m s t -&gt; Command m t u -&gt; Command m s u
</span><a href="System.Console.Haskeline.Command.html#%3E%7C%3E"><span class="hs-operator hs-var">&gt;|&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">Command (ViT m) (ArgMode CommandMode) InsertMode
</span><a href="#local-6989586621679098435"><span class="hs-identifier hs-var">act</span></a></span><span>
</span><span id="line-390"></span><span>
</span><span id="line-391"></span><span id="local-6989586621679099508"><span class="annot"><a href="System.Console.Haskeline.Vi.html#killAndStoreCmd"><span class="hs-identifier hs-type">killAndStoreCmd</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="../../base/src/Control.Monad.IO.Class.html#MonadIO"><span class="hs-identifier hs-type">MonadIO</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679099508"><span class="hs-identifier hs-type">m</span></a></span><span> </span><span class="hs-glyph">=&gt;</span><span> </span><span class="annot"><a href="System.Console.Haskeline.Command.KillRing.html#KillHelper"><span class="hs-identifier hs-type">KillHelper</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="System.Console.Haskeline.Command.html#Command"><span class="hs-identifier hs-type">Command</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="System.Console.Haskeline.Vi.html#ViT"><span class="hs-identifier hs-type">ViT</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679099508"><span class="hs-identifier hs-type">m</span></a></span><span class="hs-special">)</span><span> </span><span class="hs-special">(</span><span class="annot"><a href="System.Console.Haskeline.LineState.html#ArgMode"><span class="hs-identifier hs-type">ArgMode</span></a></span><span> </span><span class="annot"><a href="System.Console.Haskeline.LineState.html#CommandMode"><span class="hs-identifier hs-type">CommandMode</span></a></span><span class="hs-special">)</span><span> </span><span class="annot"><a href="System.Console.Haskeline.LineState.html#CommandMode"><span class="hs-identifier hs-type">CommandMode</span></a></span></span><span>
</span><span id="line-392"></span><span id="killAndStoreCmd"><span class="annot"><span class="annottext">killAndStoreCmd :: forall (m :: * -&gt; *).
MonadIO m =&gt;
KillHelper -&gt; Command (ViT m) (ArgMode CommandMode) CommandMode
</span><a href="System.Console.Haskeline.Vi.html#killAndStoreCmd"><span class="hs-identifier hs-var hs-var">killAndStoreCmd</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Command (ViT m) (ArgMode CommandMode) CommandMode
-&gt; Command (ViT m) (ArgMode CommandMode) CommandMode
forall (m :: * -&gt; *).
Monad m =&gt;
Command (ViT m) (ArgMode CommandMode) CommandMode
-&gt; Command (ViT m) (ArgMode CommandMode) CommandMode
</span><a href="System.Console.Haskeline.Vi.html#storedCmdAction"><span class="hs-identifier hs-var">storedCmdAction</span></a></span><span> </span><span class="annot"><span class="annottext">(Command (ViT m) (ArgMode CommandMode) CommandMode
 -&gt; Command (ViT m) (ArgMode CommandMode) CommandMode)
-&gt; (KillHelper
    -&gt; Command (ViT m) (ArgMode CommandMode) CommandMode)
-&gt; KillHelper
-&gt; Command (ViT m) (ArgMode CommandMode) CommandMode
forall b c a. (b -&gt; c) -&gt; (a -&gt; b) -&gt; a -&gt; c
</span><a href="../../base/src/GHC.Base.html#."><span class="hs-operator hs-var">.</span></a></span><span> </span><span class="annot"><span class="annottext">KillHelper -&gt; Command (ViT m) (ArgMode CommandMode) CommandMode
forall (m :: * -&gt; *) s t.
(MonadState KillRing m, MonadState Undo m, Save s, Save t) =&gt;
KillHelper -&gt; Command m (ArgMode s) t
</span><a href="System.Console.Haskeline.Command.KillRing.html#killFromArgHelper"><span class="hs-identifier hs-var">killFromArgHelper</span></a></span><span>
</span><span id="line-393"></span><span>
</span><span id="line-394"></span><span id="local-6989586621679099511"><span class="annot"><a href="System.Console.Haskeline.Vi.html#killAndStoreI"><span class="hs-identifier hs-type">killAndStoreI</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="../../base/src/Control.Monad.IO.Class.html#MonadIO"><span class="hs-identifier hs-type">MonadIO</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679099511"><span class="hs-identifier hs-type">m</span></a></span><span> </span><span class="hs-glyph">=&gt;</span><span> </span><span class="annot"><a href="System.Console.Haskeline.Command.KillRing.html#KillHelper"><span class="hs-identifier hs-type">KillHelper</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="System.Console.Haskeline.Command.html#Command"><span class="hs-identifier hs-type">Command</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="System.Console.Haskeline.Vi.html#ViT"><span class="hs-identifier hs-type">ViT</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679099511"><span class="hs-identifier hs-type">m</span></a></span><span class="hs-special">)</span><span> </span><span class="hs-special">(</span><span class="annot"><a href="System.Console.Haskeline.LineState.html#ArgMode"><span class="hs-identifier hs-type">ArgMode</span></a></span><span> </span><span class="annot"><a href="System.Console.Haskeline.LineState.html#CommandMode"><span class="hs-identifier hs-type">CommandMode</span></a></span><span class="hs-special">)</span><span> </span><span class="annot"><a href="System.Console.Haskeline.LineState.html#InsertMode"><span class="hs-identifier hs-type">InsertMode</span></a></span></span><span>
</span><span id="line-395"></span><span id="killAndStoreI"><span class="annot"><span class="annottext">killAndStoreI :: forall (m :: * -&gt; *).
MonadIO m =&gt;
KillHelper -&gt; Command (ViT m) (ArgMode CommandMode) InsertMode
</span><a href="System.Console.Haskeline.Vi.html#killAndStoreI"><span class="hs-identifier hs-var hs-var">killAndStoreI</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Command (ViT m) (ArgMode CommandMode) InsertMode
-&gt; Command (ViT m) (ArgMode CommandMode) InsertMode
forall (m :: * -&gt; *).
Monad m =&gt;
Command (ViT m) (ArgMode CommandMode) InsertMode
-&gt; Command (ViT m) (ArgMode CommandMode) InsertMode
</span><a href="System.Console.Haskeline.Vi.html#storedIAction"><span class="hs-identifier hs-var">storedIAction</span></a></span><span> </span><span class="annot"><span class="annottext">(Command (ViT m) (ArgMode CommandMode) InsertMode
 -&gt; Command (ViT m) (ArgMode CommandMode) InsertMode)
-&gt; (KillHelper -&gt; Command (ViT m) (ArgMode CommandMode) InsertMode)
-&gt; KillHelper
-&gt; Command (ViT m) (ArgMode CommandMode) InsertMode
forall b c a. (b -&gt; c) -&gt; (a -&gt; b) -&gt; a -&gt; c
</span><a href="../../base/src/GHC.Base.html#."><span class="hs-operator hs-var">.</span></a></span><span> </span><span class="annot"><span class="annottext">KillHelper -&gt; Command (ViT m) (ArgMode CommandMode) InsertMode
forall (m :: * -&gt; *) s t.
(MonadState KillRing m, MonadState Undo m, Save s, Save t) =&gt;
KillHelper -&gt; Command m (ArgMode s) t
</span><a href="System.Console.Haskeline.Command.KillRing.html#killFromArgHelper"><span class="hs-identifier hs-var">killFromArgHelper</span></a></span><span>
</span><span id="line-396"></span><span>
</span><span id="line-397"></span><span id="local-6989586621679099453"><span class="annot"><a href="System.Console.Haskeline.Vi.html#killAndStoreIE"><span class="hs-identifier hs-type">killAndStoreIE</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="../../base/src/Control.Monad.IO.Class.html#MonadIO"><span class="hs-identifier hs-type">MonadIO</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679099453"><span class="hs-identifier hs-type">m</span></a></span><span> </span><span class="hs-glyph">=&gt;</span><span> </span><span class="annot"><a href="System.Console.Haskeline.Command.KillRing.html#KillHelper"><span class="hs-identifier hs-type">KillHelper</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="System.Console.Haskeline.Command.html#Command"><span class="hs-identifier hs-type">Command</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="System.Console.Haskeline.Vi.html#ViT"><span class="hs-identifier hs-type">ViT</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679099453"><span class="hs-identifier hs-type">m</span></a></span><span class="hs-special">)</span><span> </span><span class="hs-special">(</span><span class="annot"><a href="System.Console.Haskeline.LineState.html#ArgMode"><span class="hs-identifier hs-type">ArgMode</span></a></span><span> </span><span class="annot"><a href="System.Console.Haskeline.LineState.html#CommandMode"><span class="hs-identifier hs-type">CommandMode</span></a></span><span class="hs-special">)</span><span> </span><span class="annot"><a href="System.Console.Haskeline.Vi.html#EitherMode"><span class="hs-identifier hs-type">EitherMode</span></a></span></span><span>
</span><span id="line-398"></span><span id="killAndStoreIE"><span class="annot"><span class="annottext">killAndStoreIE :: forall (m :: * -&gt; *).
MonadIO m =&gt;
KillHelper
-&gt; Command
     (ViT m) (ArgMode CommandMode) (Either CommandMode InsertMode)
</span><a href="System.Console.Haskeline.Vi.html#killAndStoreIE"><span class="hs-identifier hs-var hs-var">killAndStoreIE</span></a></span></span><span> </span><span id="local-6989586621679098354"><span class="annot"><span class="annottext">KillHelper
</span><a href="#local-6989586621679098354"><span class="hs-identifier hs-var">helper</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">SavedCommand m -&gt; SavedCommand m
forall (m :: * -&gt; *). Monad m =&gt; SavedCommand m -&gt; SavedCommand m
</span><a href="System.Console.Haskeline.Vi.html#storedAction"><span class="hs-identifier hs-var">storedAction</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">KillHelper -&gt; Command (ViT m) (ArgMode CommandMode) InsertMode
forall (m :: * -&gt; *) s t.
(MonadState KillRing m, MonadState Undo m, Save s, Save t) =&gt;
KillHelper -&gt; Command m (ArgMode s) t
</span><a href="System.Console.Haskeline.Command.KillRing.html#killFromArgHelper"><span class="hs-identifier hs-var">killFromArgHelper</span></a></span><span> </span><span class="annot"><span class="annottext">KillHelper
</span><a href="#local-6989586621679098354"><span class="hs-identifier hs-var">helper</span></a></span><span> </span><span class="annot"><span class="annottext">Command (ViT m) (ArgMode CommandMode) InsertMode
-&gt; Command (ViT m) InsertMode (Either CommandMode InsertMode)
-&gt; SavedCommand m
forall (m :: * -&gt; *) s t u.
Monad m =&gt;
Command m s t -&gt; Command m t u -&gt; Command m s u
</span><a href="System.Console.Haskeline.Command.html#%3E%7C%3E"><span class="hs-operator hs-var">&gt;|&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">Either CommandMode InsertMode
-&gt; CmdM (ViT m) (Either CommandMode InsertMode)
forall (m :: * -&gt; *) a. Monad m =&gt; a -&gt; m a
</span><a href="../../base/src/GHC.Base.html#return"><span class="hs-identifier hs-var">return</span></a></span><span> </span><span class="annot"><span class="annottext">(Either CommandMode InsertMode
 -&gt; CmdM (ViT m) (Either CommandMode InsertMode))
-&gt; (InsertMode -&gt; Either CommandMode InsertMode)
-&gt; Command (ViT m) InsertMode (Either CommandMode InsertMode)
forall b c a. (b -&gt; c) -&gt; (a -&gt; b) -&gt; a -&gt; c
</span><a href="../../base/src/GHC.Base.html#."><span class="hs-operator hs-var">.</span></a></span><span> </span><span class="annot"><span class="annottext">InsertMode -&gt; Either CommandMode InsertMode
forall a b. b -&gt; Either a b
</span><a href="../../base/src/Data.Either.html#Right"><span class="hs-identifier hs-var">Right</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-399"></span><span>
</span><span id="line-400"></span><span id="local-6989586621679099512"><span id="local-6989586621679099513"><span class="annot"><a href="System.Console.Haskeline.Vi.html#noArg"><span class="hs-identifier hs-type">noArg</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="../../base/src/GHC.Base.html#Monad"><span class="hs-identifier hs-type">Monad</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679099513"><span class="hs-identifier hs-type">m</span></a></span><span> </span><span class="hs-glyph">=&gt;</span><span> </span><span class="annot"><a href="System.Console.Haskeline.Command.html#Command"><span class="hs-identifier hs-type">Command</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679099513"><span class="hs-identifier hs-type">m</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679099512"><span class="hs-identifier hs-type">s</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="System.Console.Haskeline.LineState.html#ArgMode"><span class="hs-identifier hs-type">ArgMode</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679099512"><span class="hs-identifier hs-type">s</span></a></span><span class="hs-special">)</span></span></span><span>
</span><span id="line-401"></span><span id="noArg"><span class="annot"><span class="annottext">noArg :: forall (m :: * -&gt; *) s. Monad m =&gt; Command m s (ArgMode s)
</span><a href="System.Console.Haskeline.Vi.html#noArg"><span class="hs-identifier hs-var hs-var">noArg</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">ArgMode s -&gt; CmdM m (ArgMode s)
forall (m :: * -&gt; *) a. Monad m =&gt; a -&gt; m a
</span><a href="../../base/src/GHC.Base.html#return"><span class="hs-identifier hs-var">return</span></a></span><span> </span><span class="annot"><span class="annottext">(ArgMode s -&gt; CmdM m (ArgMode s))
-&gt; (s -&gt; ArgMode s) -&gt; s -&gt; CmdM m (ArgMode s)
forall b c a. (b -&gt; c) -&gt; (a -&gt; b) -&gt; a -&gt; c
</span><a href="../../base/src/GHC.Base.html#."><span class="hs-operator hs-var">.</span></a></span><span> </span><span class="annot"><span class="annottext">Int -&gt; s -&gt; ArgMode s
forall s. Int -&gt; s -&gt; ArgMode s
</span><a href="System.Console.Haskeline.LineState.html#startArg"><span class="hs-identifier hs-var">startArg</span></a></span><span> </span><span class="annot"><span class="annottext">Int
</span><span class="hs-number">1</span></span><span>
</span><span id="line-402"></span><span>
</span><span id="line-403"></span><span class="hs-comment">-------------------</span><span>
</span><span id="line-404"></span><span class="hs-comment">-- Vi-style searching</span><span>
</span><span id="line-405"></span><span>
</span><span id="line-406"></span><span class="hs-keyword">data</span><span> </span><span id="SearchEntry"><span class="annot"><a href="System.Console.Haskeline.Vi.html#SearchEntry"><span class="hs-identifier hs-var">SearchEntry</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span id="SearchEntry"><span class="annot"><a href="System.Console.Haskeline.Vi.html#SearchEntry"><span class="hs-identifier hs-var">SearchEntry</span></a></span></span><span> </span><span class="hs-special">{</span><span>
</span><span id="line-407"></span><span>                    </span><span id="entryState"><span class="annot"><span class="annottext">SearchEntry -&gt; InsertMode
</span><a href="System.Console.Haskeline.Vi.html#entryState"><span class="hs-identifier hs-var hs-var">entryState</span></a></span></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="System.Console.Haskeline.LineState.html#InsertMode"><span class="hs-identifier hs-type">InsertMode</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-408"></span><span>                    </span><span id="searchChar"><span class="annot"><span class="annottext">SearchEntry -&gt; Char
</span><a href="System.Console.Haskeline.Vi.html#searchChar"><span class="hs-identifier hs-var hs-var">searchChar</span></a></span></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><span class="hs-identifier hs-type">Char</span></span><span>
</span><span id="line-409"></span><span>                    </span><span class="hs-special">}</span><span>
</span><span id="line-410"></span><span>
</span><span id="line-411"></span><span class="annot"><a href="System.Console.Haskeline.Vi.html#searchText"><span class="hs-identifier hs-type">searchText</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="System.Console.Haskeline.Vi.html#SearchEntry"><span class="hs-identifier hs-type">SearchEntry</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="hs-special">[</span><span class="annot"><a href="System.Console.Haskeline.LineState.html#Grapheme"><span class="hs-identifier hs-type">Grapheme</span></a></span><span class="hs-special">]</span><span>
</span><span id="line-412"></span><span id="searchText"><span class="annot"><span class="annottext">searchText :: SearchEntry -&gt; [Grapheme]
</span><a href="System.Console.Haskeline.Vi.html#searchText"><span class="hs-identifier hs-var hs-var">searchText</span></a></span></span><span> </span><span class="annot"><a href="System.Console.Haskeline.Vi.html#SearchEntry"><span class="hs-identifier hs-type">SearchEntry</span></a></span><span> </span><span class="hs-special">{</span><span class="annot"><span class="annottext">entryState :: SearchEntry -&gt; InsertMode
</span><a href="System.Console.Haskeline.Vi.html#entryState"><span class="hs-identifier hs-var">entryState</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><a href="System.Console.Haskeline.LineState.html#IMode"><span class="hs-identifier hs-type">IMode</span></a></span><span> </span><span id="local-6989586621679098347"><span class="annot"><span class="annottext">[Grapheme]
</span><a href="#local-6989586621679098347"><span class="hs-identifier hs-var">xs</span></a></span></span><span> </span><span id="local-6989586621679098346"><span class="annot"><span class="annottext">[Grapheme]
</span><a href="#local-6989586621679098346"><span class="hs-identifier hs-var">ys</span></a></span></span><span class="hs-special">}</span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">[Grapheme] -&gt; [Grapheme]
forall a. [a] -&gt; [a]
</span><a href="../../base/src/GHC.List.html#reverse"><span class="hs-identifier hs-var">reverse</span></a></span><span> </span><span class="annot"><span class="annottext">[Grapheme]
</span><a href="#local-6989586621679098347"><span class="hs-identifier hs-var">xs</span></a></span><span> </span><span class="annot"><span class="annottext">[Grapheme] -&gt; [Grapheme] -&gt; [Grapheme]
forall a. [a] -&gt; [a] -&gt; [a]
</span><a href="../../base/src/GHC.Base.html#%2B%2B"><span class="hs-operator hs-var">++</span></a></span><span> </span><span class="annot"><span class="annottext">[Grapheme]
</span><a href="#local-6989586621679098346"><span class="hs-identifier hs-var">ys</span></a></span><span>
</span><span id="line-413"></span><span>
</span><span id="line-414"></span><span class="hs-keyword">instance</span><span> </span><span class="annot"><a href="System.Console.Haskeline.LineState.html#LineState"><span class="hs-identifier hs-type">LineState</span></a></span><span> </span><span class="annot"><a href="System.Console.Haskeline.Vi.html#SearchEntry"><span class="hs-identifier hs-type">SearchEntry</span></a></span><span> </span><span class="hs-keyword">where</span><span>
</span><span id="line-415"></span><span>    </span><span id="local-6989586621679098340"><span class="annot"><span class="annottext">beforeCursor :: [Grapheme] -&gt; SearchEntry -&gt; [Grapheme]
</span><a href="System.Console.Haskeline.LineState.html#beforeCursor"><span class="hs-identifier hs-var hs-var hs-var hs-var">beforeCursor</span></a></span></span><span> </span><span id="local-6989586621679098338"><span class="annot"><span class="annottext">[Grapheme]
</span><a href="#local-6989586621679098338"><span class="hs-identifier hs-var">prefix</span></a></span></span><span> </span><span id="local-6989586621679098337"><span class="annot"><span class="annottext">SearchEntry
</span><a href="#local-6989586621679098337"><span class="hs-identifier hs-var">se</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">[Grapheme] -&gt; InsertMode -&gt; [Grapheme]
forall s. LineState s =&gt; [Grapheme] -&gt; s -&gt; [Grapheme]
</span><a href="System.Console.Haskeline.LineState.html#beforeCursor"><span class="hs-identifier hs-var">beforeCursor</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">[Grapheme]
</span><a href="#local-6989586621679098338"><span class="hs-identifier hs-var">prefix</span></a></span><span> </span><span class="annot"><span class="annottext">[Grapheme] -&gt; [Grapheme] -&gt; [Grapheme]
forall a. [a] -&gt; [a] -&gt; [a]
</span><a href="../../base/src/GHC.Base.html#%2B%2B"><span class="hs-operator hs-var">++</span></a></span><span> </span><span class="annot"><span class="annottext">String -&gt; [Grapheme]
</span><a href="System.Console.Haskeline.LineState.html#stringToGraphemes"><span class="hs-identifier hs-var">stringToGraphemes</span></a></span><span> </span><span class="hs-special">[</span><span class="annot"><span class="annottext">SearchEntry -&gt; Char
</span><a href="System.Console.Haskeline.Vi.html#searchChar"><span class="hs-identifier hs-var hs-var">searchChar</span></a></span><span> </span><span class="annot"><span class="annottext">SearchEntry
</span><a href="#local-6989586621679098337"><span class="hs-identifier hs-var">se</span></a></span><span class="hs-special">]</span><span class="hs-special">)</span><span>
</span><span id="line-416"></span><span>                                </span><span class="hs-special">(</span><span class="annot"><span class="annottext">SearchEntry -&gt; InsertMode
</span><a href="System.Console.Haskeline.Vi.html#entryState"><span class="hs-identifier hs-var hs-var">entryState</span></a></span><span> </span><span class="annot"><span class="annottext">SearchEntry
</span><a href="#local-6989586621679098337"><span class="hs-identifier hs-var">se</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-417"></span><span>    </span><span id="local-6989586621679098334"><span class="annot"><span class="annottext">afterCursor :: SearchEntry -&gt; [Grapheme]
</span><a href="System.Console.Haskeline.LineState.html#afterCursor"><span class="hs-identifier hs-var hs-var hs-var hs-var">afterCursor</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">InsertMode -&gt; [Grapheme]
forall s. LineState s =&gt; s -&gt; [Grapheme]
</span><a href="System.Console.Haskeline.LineState.html#afterCursor"><span class="hs-identifier hs-var">afterCursor</span></a></span><span> </span><span class="annot"><span class="annottext">(InsertMode -&gt; [Grapheme])
-&gt; (SearchEntry -&gt; InsertMode) -&gt; SearchEntry -&gt; [Grapheme]
forall b c a. (b -&gt; c) -&gt; (a -&gt; b) -&gt; a -&gt; c
</span><a href="../../base/src/GHC.Base.html#."><span class="hs-operator hs-var">.</span></a></span><span> </span><span class="annot"><span class="annottext">SearchEntry -&gt; InsertMode
</span><a href="System.Console.Haskeline.Vi.html#entryState"><span class="hs-identifier hs-var hs-var">entryState</span></a></span><span>
</span><span id="line-418"></span><span>
</span><span id="line-419"></span><span id="local-6989586621679099505"><span class="annot"><a href="System.Console.Haskeline.Vi.html#viEnterSearch"><span class="hs-identifier hs-type">viEnterSearch</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="../../base/src/GHC.Base.html#Monad"><span class="hs-identifier hs-type">Monad</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679099505"><span class="hs-identifier hs-type">m</span></a></span><span> </span><span class="hs-glyph">=&gt;</span><span> </span><span class="annot"><span class="hs-identifier hs-type">Char</span></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="System.Console.Haskeline.Command.History.html#Direction"><span class="hs-identifier hs-type">Direction</span></a></span><span>
</span><span id="line-420"></span><span>                    </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="System.Console.Haskeline.Command.html#Command"><span class="hs-identifier hs-type">Command</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="System.Console.Haskeline.Vi.html#ViT"><span class="hs-identifier hs-type">ViT</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679099505"><span class="hs-identifier hs-type">m</span></a></span><span class="hs-special">)</span><span> </span><span class="annot"><a href="System.Console.Haskeline.LineState.html#CommandMode"><span class="hs-identifier hs-type">CommandMode</span></a></span><span> </span><span class="annot"><a href="System.Console.Haskeline.LineState.html#CommandMode"><span class="hs-identifier hs-type">CommandMode</span></a></span></span><span>
</span><span id="line-421"></span><span id="viEnterSearch"><span class="annot"><span class="annottext">viEnterSearch :: forall (m :: * -&gt; *).
Monad m =&gt;
Char -&gt; Direction -&gt; Command (ViT m) CommandMode CommandMode
</span><a href="System.Console.Haskeline.Vi.html#viEnterSearch"><span class="hs-identifier hs-var hs-var">viEnterSearch</span></a></span></span><span> </span><span id="local-6989586621679098321"><span class="annot"><span class="annottext">Char
</span><a href="#local-6989586621679098321"><span class="hs-identifier hs-var">c</span></a></span></span><span> </span><span id="local-6989586621679098320"><span class="annot"><span class="annottext">Direction
</span><a href="#local-6989586621679098320"><span class="hs-identifier hs-var">dir</span></a></span></span><span> </span><span id="local-6989586621679098319"><span class="annot"><span class="annottext">CommandMode
</span><a href="#local-6989586621679098319"><span class="hs-identifier hs-var">s</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Command (ViT m) SearchEntry SearchEntry
forall (m :: * -&gt; *) s. (Monad m, LineState s) =&gt; Command m s s
</span><a href="System.Console.Haskeline.Command.html#setState"><span class="hs-identifier hs-var">setState</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">InsertMode -&gt; Char -&gt; SearchEntry
</span><a href="System.Console.Haskeline.Vi.html#SearchEntry"><span class="hs-identifier hs-var">SearchEntry</span></a></span><span> </span><span class="annot"><span class="annottext">InsertMode
</span><a href="System.Console.Haskeline.LineState.html#emptyIM"><span class="hs-identifier hs-var">emptyIM</span></a></span><span> </span><span class="annot"><span class="annottext">Char
</span><a href="#local-6989586621679098321"><span class="hs-identifier hs-var">c</span></a></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">CmdM (ViT m) SearchEntry
-&gt; (SearchEntry -&gt; CmdM (ViT m) CommandMode)
-&gt; CmdM (ViT m) CommandMode
forall (m :: * -&gt; *) a b. Monad m =&gt; m a -&gt; (a -&gt; m b) -&gt; m b
</span><a href="../../base/src/GHC.Base.html#%3E%3E%3D"><span class="hs-operator hs-var">&gt;&gt;=</span></a></span><span> </span><span class="annot"><span class="annottext">SearchEntry -&gt; CmdM (ViT m) CommandMode
</span><a href="#local-6989586621679098317"><span class="hs-identifier hs-var">loopEntry</span></a></span><span>
</span><span id="line-422"></span><span>    </span><span class="hs-keyword">where</span><span>
</span><span id="line-423"></span><span>        </span><span id="local-6989586621679098316"><span class="annot"><span class="annottext">modifySE :: (InsertMode -&gt; InsertMode) -&gt; SearchEntry -&gt; SearchEntry
</span><a href="#local-6989586621679098316"><span class="hs-identifier hs-var hs-var">modifySE</span></a></span></span><span> </span><span id="local-6989586621679098315"><span class="annot"><span class="annottext">InsertMode -&gt; InsertMode
</span><a href="#local-6989586621679098315"><span class="hs-identifier hs-var">f</span></a></span></span><span> </span><span id="local-6989586621679098314"><span class="annot"><span class="annottext">SearchEntry
</span><a href="#local-6989586621679098314"><span class="hs-identifier hs-var">se</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">SearchEntry
</span><a href="#local-6989586621679098314"><span class="hs-identifier hs-var">se</span></a></span><span> </span><span class="hs-special">{</span><span class="annot"><span class="annottext">entryState :: InsertMode
</span><a href="System.Console.Haskeline.Vi.html#entryState"><span class="hs-identifier hs-var">entryState</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">InsertMode -&gt; InsertMode
</span><a href="#local-6989586621679098315"><span class="hs-identifier hs-var">f</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">SearchEntry -&gt; InsertMode
</span><a href="System.Console.Haskeline.Vi.html#entryState"><span class="hs-identifier hs-var hs-var">entryState</span></a></span><span> </span><span class="annot"><span class="annottext">SearchEntry
</span><a href="#local-6989586621679098314"><span class="hs-identifier hs-var">se</span></a></span><span class="hs-special">)</span><span class="hs-special">}</span><span>
</span><span id="line-424"></span><span>        </span><span id="local-6989586621679098317"><span class="annot"><span class="annottext">loopEntry :: SearchEntry -&gt; CmdM (ViT m) CommandMode
</span><a href="#local-6989586621679098317"><span class="hs-identifier hs-var hs-var">loopEntry</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">[KeyCommand (ViT m) SearchEntry CommandMode]
-&gt; SearchEntry -&gt; CmdM (ViT m) CommandMode
forall (m :: * -&gt; *) s t. [KeyCommand m s t] -&gt; Command m s t
</span><a href="System.Console.Haskeline.Command.html#keyChoiceCmd"><span class="hs-identifier hs-var">keyChoiceCmd</span></a></span><span> </span><span class="hs-special">[</span><span>
</span><span id="line-425"></span><span>                        </span><span class="annot"><span class="annottext">KeyMap (Command (ViT m) SearchEntry SearchEntry)
</span><a href="#local-6989586621679098309"><span class="hs-identifier hs-var">editEntry</span></a></span><span> </span><span class="annot"><span class="annottext">KeyMap (Command (ViT m) SearchEntry SearchEntry)
-&gt; (SearchEntry -&gt; CmdM (ViT m) CommandMode)
-&gt; KeyCommand (ViT m) SearchEntry CommandMode
forall (m :: * -&gt; *) s t u.
Monad m =&gt;
KeyCommand m s t -&gt; Command m t u -&gt; KeyCommand m s u
</span><a href="System.Console.Haskeline.Command.html#%3E%2B%3E"><span class="hs-operator hs-var">&gt;+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">SearchEntry -&gt; CmdM (ViT m) CommandMode
</span><a href="#local-6989586621679098317"><span class="hs-identifier hs-var">loopEntry</span></a></span><span>
</span><span id="line-426"></span><span>                        </span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">Char -&gt; Key
</span><a href="System.Console.Haskeline.Key.html#simpleChar"><span class="hs-identifier hs-var">simpleChar</span></a></span><span> </span><span class="annot"><span class="annottext">Char
</span><span class="hs-char">'\n'</span></span><span> </span><span class="annot"><span class="annottext">Key
-&gt; (SearchEntry -&gt; CmdM (ViT m) CommandMode)
-&gt; KeyCommand (ViT m) SearchEntry CommandMode
forall a. Key -&gt; a -&gt; KeyMap a
</span><a href="System.Console.Haskeline.Command.html#%2B%3E"><span class="hs-operator hs-var">+&gt;</span></a></span><span> </span><span class="hs-glyph">\</span><span id="local-6989586621679098308"><span class="annot"><span class="annottext">SearchEntry
</span><a href="#local-6989586621679098308"><span class="hs-identifier hs-var">se</span></a></span></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span>
</span><span id="line-427"></span><span>                            </span><span class="annot"><span class="annottext">Direction -&gt; [Grapheme] -&gt; Command (ViT m) CommandMode CommandMode
forall (m :: * -&gt; *).
Monad m =&gt;
Direction -&gt; [Grapheme] -&gt; Command (ViT m) CommandMode CommandMode
</span><a href="System.Console.Haskeline.Vi.html#viSearchHist"><span class="hs-identifier hs-var">viSearchHist</span></a></span><span> </span><span class="annot"><span class="annottext">Direction
</span><a href="#local-6989586621679098320"><span class="hs-identifier hs-var">dir</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">SearchEntry -&gt; [Grapheme]
</span><a href="System.Console.Haskeline.Vi.html#searchText"><span class="hs-identifier hs-var">searchText</span></a></span><span> </span><span class="annot"><span class="annottext">SearchEntry
</span><a href="#local-6989586621679098308"><span class="hs-identifier hs-var">se</span></a></span><span class="hs-special">)</span><span> </span><span class="annot"><span class="annottext">CommandMode
</span><a href="#local-6989586621679098319"><span class="hs-identifier hs-var">s</span></a></span><span>
</span><span id="line-428"></span><span>                        </span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">(SearchEntry -&gt; CmdM (ViT m) CommandMode)
-&gt; KeyCommand (ViT m) SearchEntry CommandMode
forall (m :: * -&gt; *) s t. Command m s t -&gt; KeyCommand m s t
</span><a href="System.Console.Haskeline.Command.html#withoutConsuming"><span class="hs-identifier hs-var">withoutConsuming</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">(SearchEntry -&gt; CommandMode)
-&gt; SearchEntry -&gt; CmdM (ViT m) CommandMode
forall t (m :: * -&gt; *) s.
(LineState t, Monad m) =&gt;
(s -&gt; t) -&gt; Command m s t
</span><a href="System.Console.Haskeline.Command.html#change"><span class="hs-identifier hs-var">change</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">CommandMode -&gt; SearchEntry -&gt; CommandMode
forall a b. a -&gt; b -&gt; a
</span><a href="../../base/src/GHC.Base.html#const"><span class="hs-identifier hs-var">const</span></a></span><span> </span><span class="annot"><span class="annottext">CommandMode
</span><a href="#local-6989586621679098319"><span class="hs-identifier hs-var">s</span></a></span><span class="hs-special">)</span><span class="hs-special">)</span><span>
</span><span id="line-429"></span><span>                        </span><span class="hs-special">]</span><span>
</span><span id="line-430"></span><span>        </span><span id="local-6989586621679098309"><span class="annot"><span class="annottext">editEntry :: KeyMap (Command (ViT m) SearchEntry SearchEntry)
</span><a href="#local-6989586621679098309"><span class="hs-identifier hs-var hs-var">editEntry</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">[KeyMap (Command (ViT m) SearchEntry SearchEntry)]
-&gt; KeyMap (Command (ViT m) SearchEntry SearchEntry)
forall a. [KeyMap a] -&gt; KeyMap a
</span><a href="System.Console.Haskeline.Command.html#choiceCmd"><span class="hs-identifier hs-var">choiceCmd</span></a></span><span> </span><span class="hs-special">[</span><span>
</span><span id="line-431"></span><span>                        </span><span class="annot"><span class="annottext">(Char -&gt; Command (ViT m) SearchEntry SearchEntry)
-&gt; KeyMap (Command (ViT m) SearchEntry SearchEntry)
forall (m :: * -&gt; *) s t.
(Char -&gt; Command m s t) -&gt; KeyCommand m s t
</span><a href="System.Console.Haskeline.Command.html#useChar"><span class="hs-identifier hs-var">useChar</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">(SearchEntry -&gt; SearchEntry)
-&gt; Command (ViT m) SearchEntry SearchEntry
forall t (m :: * -&gt; *) s.
(LineState t, Monad m) =&gt;
(s -&gt; t) -&gt; Command m s t
</span><a href="System.Console.Haskeline.Command.html#change"><span class="hs-identifier hs-var">change</span></a></span><span> </span><span class="annot"><span class="annottext">((SearchEntry -&gt; SearchEntry)
 -&gt; Command (ViT m) SearchEntry SearchEntry)
-&gt; (Char -&gt; SearchEntry -&gt; SearchEntry)
-&gt; Char
-&gt; Command (ViT m) SearchEntry SearchEntry
forall b c a. (b -&gt; c) -&gt; (a -&gt; b) -&gt; a -&gt; c
</span><a href="../../base/src/GHC.Base.html#."><span class="hs-operator hs-var">.</span></a></span><span> </span><span class="annot"><span class="annottext">(InsertMode -&gt; InsertMode) -&gt; SearchEntry -&gt; SearchEntry
</span><a href="#local-6989586621679098316"><span class="hs-identifier hs-var">modifySE</span></a></span><span> </span><span class="annot"><span class="annottext">((InsertMode -&gt; InsertMode) -&gt; SearchEntry -&gt; SearchEntry)
-&gt; (Char -&gt; InsertMode -&gt; InsertMode)
-&gt; Char
-&gt; SearchEntry
-&gt; SearchEntry
forall b c a. (b -&gt; c) -&gt; (a -&gt; b) -&gt; a -&gt; c
</span><a href="../../base/src/GHC.Base.html#."><span class="hs-operator hs-var">.</span></a></span><span> </span><span class="annot"><span class="annottext">Char -&gt; InsertMode -&gt; InsertMode
</span><a href="System.Console.Haskeline.LineState.html#insertChar"><span class="hs-identifier hs-var">insertChar</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-432"></span><span>                        </span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">BaseKey -&gt; Key
</span><a href="System.Console.Haskeline.Key.html#simpleKey"><span class="hs-identifier hs-var">simpleKey</span></a></span><span> </span><span class="annot"><span class="annottext">BaseKey
</span><a href="System.Console.Haskeline.Key.html#LeftKey"><span class="hs-identifier hs-var">LeftKey</span></a></span><span> </span><span class="annot"><span class="annottext">Key
-&gt; Command (ViT m) SearchEntry SearchEntry
-&gt; KeyMap (Command (ViT m) SearchEntry SearchEntry)
forall a. Key -&gt; a -&gt; KeyMap a
</span><a href="System.Console.Haskeline.Command.html#%2B%3E"><span class="hs-operator hs-var">+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">(SearchEntry -&gt; SearchEntry)
-&gt; Command (ViT m) SearchEntry SearchEntry
forall t (m :: * -&gt; *) s.
(LineState t, Monad m) =&gt;
(s -&gt; t) -&gt; Command m s t
</span><a href="System.Console.Haskeline.Command.html#change"><span class="hs-identifier hs-var">change</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">(InsertMode -&gt; InsertMode) -&gt; SearchEntry -&gt; SearchEntry
</span><a href="#local-6989586621679098316"><span class="hs-identifier hs-var">modifySE</span></a></span><span> </span><span class="annot"><span class="annottext">InsertMode -&gt; InsertMode
forall s. Move s =&gt; s -&gt; s
</span><a href="System.Console.Haskeline.LineState.html#goLeft"><span class="hs-identifier hs-var">goLeft</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-433"></span><span>                        </span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">BaseKey -&gt; Key
</span><a href="System.Console.Haskeline.Key.html#simpleKey"><span class="hs-identifier hs-var">simpleKey</span></a></span><span> </span><span class="annot"><span class="annottext">BaseKey
</span><a href="System.Console.Haskeline.Key.html#RightKey"><span class="hs-identifier hs-var">RightKey</span></a></span><span> </span><span class="annot"><span class="annottext">Key
-&gt; Command (ViT m) SearchEntry SearchEntry
-&gt; KeyMap (Command (ViT m) SearchEntry SearchEntry)
forall a. Key -&gt; a -&gt; KeyMap a
</span><a href="System.Console.Haskeline.Command.html#%2B%3E"><span class="hs-operator hs-var">+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">(SearchEntry -&gt; SearchEntry)
-&gt; Command (ViT m) SearchEntry SearchEntry
forall t (m :: * -&gt; *) s.
(LineState t, Monad m) =&gt;
(s -&gt; t) -&gt; Command m s t
</span><a href="System.Console.Haskeline.Command.html#change"><span class="hs-identifier hs-var">change</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">(InsertMode -&gt; InsertMode) -&gt; SearchEntry -&gt; SearchEntry
</span><a href="#local-6989586621679098316"><span class="hs-identifier hs-var">modifySE</span></a></span><span> </span><span class="annot"><span class="annottext">InsertMode -&gt; InsertMode
forall s. Move s =&gt; s -&gt; s
</span><a href="System.Console.Haskeline.LineState.html#goRight"><span class="hs-identifier hs-var">goRight</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-434"></span><span>                        </span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">BaseKey -&gt; Key
</span><a href="System.Console.Haskeline.Key.html#simpleKey"><span class="hs-identifier hs-var">simpleKey</span></a></span><span> </span><span class="annot"><span class="annottext">BaseKey
</span><a href="System.Console.Haskeline.Key.html#Backspace"><span class="hs-identifier hs-var">Backspace</span></a></span><span> </span><span class="annot"><span class="annottext">Key
-&gt; Command (ViT m) SearchEntry SearchEntry
-&gt; KeyMap (Command (ViT m) SearchEntry SearchEntry)
forall a. Key -&gt; a -&gt; KeyMap a
</span><a href="System.Console.Haskeline.Command.html#%2B%3E"><span class="hs-operator hs-var">+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">(SearchEntry -&gt; SearchEntry)
-&gt; Command (ViT m) SearchEntry SearchEntry
forall t (m :: * -&gt; *) s.
(LineState t, Monad m) =&gt;
(s -&gt; t) -&gt; Command m s t
</span><a href="System.Console.Haskeline.Command.html#change"><span class="hs-identifier hs-var">change</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">(InsertMode -&gt; InsertMode) -&gt; SearchEntry -&gt; SearchEntry
</span><a href="#local-6989586621679098316"><span class="hs-identifier hs-var">modifySE</span></a></span><span> </span><span class="annot"><span class="annottext">InsertMode -&gt; InsertMode
</span><a href="System.Console.Haskeline.LineState.html#deletePrev"><span class="hs-identifier hs-var">deletePrev</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-435"></span><span>                        </span><span class="hs-special">,</span><span> </span><span class="annot"><span class="annottext">BaseKey -&gt; Key
</span><a href="System.Console.Haskeline.Key.html#simpleKey"><span class="hs-identifier hs-var">simpleKey</span></a></span><span> </span><span class="annot"><span class="annottext">BaseKey
</span><a href="System.Console.Haskeline.Key.html#Delete"><span class="hs-identifier hs-var">Delete</span></a></span><span> </span><span class="annot"><span class="annottext">Key
-&gt; Command (ViT m) SearchEntry SearchEntry
-&gt; KeyMap (Command (ViT m) SearchEntry SearchEntry)
forall a. Key -&gt; a -&gt; KeyMap a
</span><a href="System.Console.Haskeline.Command.html#%2B%3E"><span class="hs-operator hs-var">+&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">(SearchEntry -&gt; SearchEntry)
-&gt; Command (ViT m) SearchEntry SearchEntry
forall t (m :: * -&gt; *) s.
(LineState t, Monad m) =&gt;
(s -&gt; t) -&gt; Command m s t
</span><a href="System.Console.Haskeline.Command.html#change"><span class="hs-identifier hs-var">change</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">(InsertMode -&gt; InsertMode) -&gt; SearchEntry -&gt; SearchEntry
</span><a href="#local-6989586621679098316"><span class="hs-identifier hs-var">modifySE</span></a></span><span> </span><span class="annot"><span class="annottext">InsertMode -&gt; InsertMode
</span><a href="System.Console.Haskeline.LineState.html#deleteNext"><span class="hs-identifier hs-var">deleteNext</span></a></span><span class="hs-special">)</span><span>
</span><span id="line-436"></span><span>                        </span><span class="hs-special">]</span><span> </span><span>
</span><span id="line-437"></span><span>
</span><span id="line-438"></span><span class="annot"><a href="System.Console.Haskeline.Vi.html#viSearchHist"><span class="hs-identifier hs-type">viSearchHist</span></a></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="hs-keyword">forall</span><span> </span><span id="local-6989586621679099504"><span class="annot"><a href="#local-6989586621679099504"><span class="hs-identifier hs-type">m</span></a></span></span><span> </span><span class="hs-operator">.</span><span> </span><span class="annot"><a href="../../base/src/GHC.Base.html#Monad"><span class="hs-identifier hs-type">Monad</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679099504"><span class="hs-identifier hs-type">m</span></a></span><span>
</span><span id="line-439"></span><span>    </span><span class="hs-glyph">=&gt;</span><span> </span><span class="annot"><a href="System.Console.Haskeline.Command.History.html#Direction"><span class="hs-identifier hs-type">Direction</span></a></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="hs-special">[</span><span class="annot"><a href="System.Console.Haskeline.LineState.html#Grapheme"><span class="hs-identifier hs-type">Grapheme</span></a></span><span class="hs-special">]</span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><a href="System.Console.Haskeline.Command.html#Command"><span class="hs-identifier hs-type">Command</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><a href="System.Console.Haskeline.Vi.html#ViT"><span class="hs-identifier hs-type">ViT</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679099504"><span class="hs-identifier hs-type">m</span></a></span><span class="hs-special">)</span><span> </span><span class="annot"><a href="System.Console.Haskeline.LineState.html#CommandMode"><span class="hs-identifier hs-type">CommandMode</span></a></span><span> </span><span class="annot"><a href="System.Console.Haskeline.LineState.html#CommandMode"><span class="hs-identifier hs-type">CommandMode</span></a></span><span>
</span><span id="line-440"></span><span id="viSearchHist"><span class="annot"><span class="annottext">viSearchHist :: forall (m :: * -&gt; *).
Monad m =&gt;
Direction -&gt; [Grapheme] -&gt; Command (ViT m) CommandMode CommandMode
</span><a href="System.Console.Haskeline.Vi.html#viSearchHist"><span class="hs-identifier hs-var hs-var">viSearchHist</span></a></span></span><span> </span><span id="local-6989586621679098264"><span class="annot"><span class="annottext">Direction
</span><a href="#local-6989586621679098264"><span class="hs-identifier hs-var">dir</span></a></span></span><span> </span><span id="local-6989586621679098263"><span class="annot"><span class="annottext">[Grapheme]
</span><a href="#local-6989586621679098263"><span class="hs-identifier hs-var">toSearch</span></a></span></span><span> </span><span id="local-6989586621679098262"><span class="annot"><span class="annottext">CommandMode
</span><a href="#local-6989586621679098262"><span class="hs-identifier hs-var">cm</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="hs-keyword">do</span><span>
</span><span id="line-441"></span><span>    </span><span id="local-6989586621679098261"><span class="annot"><span class="annottext">ViState m
</span><a href="#local-6989586621679098261"><span class="hs-identifier hs-var">vstate</span></a></span></span><span> </span><span class="hs-glyph">::</span><span> </span><span class="annot"><a href="System.Console.Haskeline.Vi.html#ViState"><span class="hs-identifier hs-type">ViState</span></a></span><span> </span><span class="annot"><a href="#local-6989586621679099504"><span class="hs-identifier hs-type">m</span></a></span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">CmdM (ViT m) (ViState m)
forall s (m :: * -&gt; *). MonadState s m =&gt; m s
</span><a href="System.Console.Haskeline.Monads.html#get"><span class="hs-identifier hs-var">get</span></a></span><span>
</span><span id="line-442"></span><span>    </span><span class="hs-keyword">let</span><span> </span><span id="local-6989586621679098258"><span class="annot"><span class="annottext">toSearch' :: [Grapheme]
</span><a href="#local-6989586621679098258"><span class="hs-identifier hs-var hs-var">toSearch'</span></a></span></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="hs-keyword">if</span><span> </span><span class="annot"><span class="annottext">[Grapheme] -&gt; Bool
forall (t :: * -&gt; *) a. Foldable t =&gt; t a -&gt; Bool
</span><a href="../../base/src/Data.Foldable.html#null"><span class="hs-identifier hs-var">null</span></a></span><span> </span><span class="annot"><span class="annottext">[Grapheme]
</span><a href="#local-6989586621679098263"><span class="hs-identifier hs-var">toSearch</span></a></span><span>
</span><span id="line-443"></span><span>                        </span><span class="hs-keyword">then</span><span> </span><span class="annot"><span class="annottext">ViState m -&gt; [Grapheme]
forall (m :: * -&gt; *). ViState m -&gt; [Grapheme]
</span><a href="System.Console.Haskeline.Vi.html#lastSearch"><span class="hs-identifier hs-var hs-var">lastSearch</span></a></span><span> </span><span class="annot"><span class="annottext">ViState m
</span><a href="#local-6989586621679098261"><span class="hs-identifier hs-var">vstate</span></a></span><span>
</span><span id="line-444"></span><span>                        </span><span class="hs-keyword">else</span><span> </span><span class="annot"><span class="annottext">[Grapheme]
</span><a href="#local-6989586621679098263"><span class="hs-identifier hs-var">toSearch</span></a></span><span>
</span><span id="line-445"></span><span>    </span><span id="local-6989586621679098256"><span class="annot"><span class="annottext">Either Effect SearchMode
</span><a href="#local-6989586621679098256"><span class="hs-identifier hs-var">result</span></a></span></span><span> </span><span class="hs-glyph">&lt;-</span><span> </span><span class="annot"><span class="annottext">Bool -&gt; SearchMode -&gt; CmdM (ViT m) (Either Effect SearchMode)
forall (m :: * -&gt; *).
MonadState HistLog m =&gt;
Bool -&gt; SearchMode -&gt; m (Either Effect SearchMode)
</span><a href="System.Console.Haskeline.Command.History.html#doSearch"><span class="hs-identifier hs-var">doSearch</span></a></span><span> </span><span class="annot"><span class="annottext">Bool
</span><span class="hs-identifier hs-var">False</span></span><span> </span><span class="annot"><span class="annottext">SearchMode :: [Grapheme] -&gt; InsertMode -&gt; Direction -&gt; SearchMode
</span><a href="System.Console.Haskeline.Command.History.html#SearchMode"><span class="hs-identifier hs-type">SearchMode</span></a></span><span> </span><span class="hs-special">{</span><span>
</span><span id="line-446"></span><span>                                    </span><span class="annot"><span class="annottext">searchTerm :: [Grapheme]
</span><a href="System.Console.Haskeline.Command.History.html#searchTerm"><span class="hs-identifier hs-var">searchTerm</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">[Grapheme]
</span><a href="#local-6989586621679098258"><span class="hs-identifier hs-var">toSearch'</span></a></span><span class="hs-special">,</span><span>
</span><span id="line-447"></span><span>                                    </span><span class="annot"><span class="annottext">foundHistory :: InsertMode
</span><a href="System.Console.Haskeline.Command.History.html#foundHistory"><span class="hs-identifier hs-var">foundHistory</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">CommandMode -&gt; InsertMode
forall s. Save s =&gt; s -&gt; InsertMode
</span><a href="System.Console.Haskeline.LineState.html#save"><span class="hs-identifier hs-var">save</span></a></span><span> </span><span class="annot"><span class="annottext">CommandMode
</span><a href="#local-6989586621679098262"><span class="hs-identifier hs-var">cm</span></a></span><span class="hs-special">,</span><span> </span><span class="hs-comment">-- TODO: not needed</span><span>
</span><span id="line-448"></span><span>                                    </span><span class="annot"><span class="annottext">direction :: Direction
</span><a href="System.Console.Haskeline.Command.History.html#direction"><span class="hs-identifier hs-var">direction</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">Direction
</span><a href="#local-6989586621679098264"><span class="hs-identifier hs-var">dir</span></a></span><span class="hs-special">}</span><span>
</span><span id="line-449"></span><span>    </span><span class="hs-keyword">case</span><span> </span><span class="annot"><span class="annottext">Either Effect SearchMode
</span><a href="#local-6989586621679098256"><span class="hs-identifier hs-var">result</span></a></span><span> </span><span class="hs-keyword">of</span><span>
</span><span id="line-450"></span><span>        </span><span class="annot"><a href="../../base/src/Data.Either.html#Left"><span class="hs-identifier hs-type">Left</span></a></span><span> </span><span id="local-6989586621679098250"><span class="annot"><span class="annottext">Effect
</span><a href="#local-6989586621679098250"><span class="hs-identifier hs-var">e</span></a></span></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="annot"><span class="annottext">Effect -&gt; CmdM (ViT m) ()
forall (m :: * -&gt; *). Effect -&gt; CmdM m ()
</span><a href="System.Console.Haskeline.Command.html#effect"><span class="hs-identifier hs-var">effect</span></a></span><span> </span><span class="annot"><span class="annottext">Effect
</span><a href="#local-6989586621679098250"><span class="hs-identifier hs-var">e</span></a></span><span> </span><span class="annot"><span class="annottext">CmdM (ViT m) ()
-&gt; CmdM (ViT m) CommandMode -&gt; CmdM (ViT m) CommandMode
forall (m :: * -&gt; *) a b. Monad m =&gt; m a -&gt; m b -&gt; m b
</span><a href="../../base/src/GHC.Base.html#%3E%3E"><span class="hs-operator hs-var">&gt;&gt;</span></a></span><span> </span><span class="annot"><span class="annottext">Command (ViT m) CommandMode CommandMode
forall (m :: * -&gt; *) s. (Monad m, LineState s) =&gt; Command m s s
</span><a href="System.Console.Haskeline.Command.html#setState"><span class="hs-identifier hs-var">setState</span></a></span><span> </span><span class="annot"><span class="annottext">CommandMode
</span><a href="#local-6989586621679098262"><span class="hs-identifier hs-var">cm</span></a></span><span>
</span><span id="line-451"></span><span>        </span><span class="annot"><a href="../../base/src/Data.Either.html#Right"><span class="hs-identifier hs-type">Right</span></a></span><span> </span><span id="local-6989586621679098248"><span class="annot"><span class="annottext">SearchMode
</span><a href="#local-6989586621679098248"><span class="hs-identifier hs-var">sm</span></a></span></span><span> </span><span class="hs-glyph">-&gt;</span><span> </span><span class="hs-keyword">do</span><span>
</span><span id="line-452"></span><span>            </span><span class="annot"><span class="annottext">ViState m -&gt; CmdM (ViT m) ()
forall s (m :: * -&gt; *). MonadState s m =&gt; s -&gt; m ()
</span><a href="System.Console.Haskeline.Monads.html#put"><span class="hs-identifier hs-var">put</span></a></span><span> </span><span class="annot"><span class="annottext">ViState m
</span><a href="#local-6989586621679098261"><span class="hs-identifier hs-var">vstate</span></a></span><span> </span><span class="hs-special">{</span><span class="annot"><span class="annottext">lastSearch :: [Grapheme]
</span><a href="System.Console.Haskeline.Vi.html#lastSearch"><span class="hs-identifier hs-var">lastSearch</span></a></span><span> </span><span class="hs-glyph">=</span><span> </span><span class="annot"><span class="annottext">[Grapheme]
</span><a href="#local-6989586621679098258"><span class="hs-identifier hs-var">toSearch'</span></a></span><span class="hs-special">}</span><span>
</span><span id="line-453"></span><span>            </span><span class="annot"><span class="annottext">Command (ViT m) CommandMode CommandMode
forall (m :: * -&gt; *) s. (Monad m, LineState s) =&gt; Command m s s
</span><a href="System.Console.Haskeline.Command.html#setState"><span class="hs-identifier hs-var">setState</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">InsertMode -&gt; CommandMode
forall s. Save s =&gt; InsertMode -&gt; s
</span><a href="System.Console.Haskeline.LineState.html#restore"><span class="hs-identifier hs-var">restore</span></a></span><span> </span><span class="hs-special">(</span><span class="annot"><span class="annottext">SearchMode -&gt; InsertMode
</span><a href="System.Console.Haskeline.Command.History.html#foundHistory"><span class="hs-identifier hs-var hs-var">foundHistory</span></a></span><span> </span><span class="annot"><span class="annottext">SearchMode
</span><a href="#local-6989586621679098248"><span class="hs-identifier hs-var">sm</span></a></span><span class="hs-special">)</span><span class="hs-special">)</span><span>
</span><span id="line-454"></span></pre></body></html>